Redis数据类型之String数据类型

Redis数据类型之String数据类型

  • Redis数据类型之String数据类型
    • 1.SET/GET/APPEND/STRLEN:
    • 2.INCR/DECR/INCRBY/DECRBY:
    • 3.GETSET
    • 4.SETEX:
    • 5.SETNX:
    • 6.MSET/MGET/MSETNX:

Redis数据类型之String数据类型

  • 概述: String是redis最基本的类型,最大能存储512NB的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等

1.SET/GET/APPEND/STRLEN:

192.168.199.40:6379> exists mykey            #判断该键是否存在,存在返回1,否则返回0 
(integer) 0

在这里插入图片描述

192.168.199.40:6379> append mykey "hello"      #该键并不存在,因此append命令返回当前Value的长度
(integer) 5

在这里插入图片描述

192.168.199.40:6379> append mykey "world"     #该键已经存在,因此返回追加后Value的长度
(integer) 11

在这里插入图片描述

192.168.199.40:6379> get mykey           #通过get命令获取该键,以判断append的结果
"hello world"

在这里插入图片描述

192.168.199.40:6379> set mykey "this is a test"#通过set命令为键设置新值,并覆盖原有值
0K
192.168.199.40:6379> get mykey
"this is a test"
192.168.199.40:6379> strlen mykey#获取指定Key的字符长度
(integer) 14

Redis数据类型之String数据类型_第1张图片

2.INCR/DECR/INCRBY/DECRBY:

192.168.199.40:6379> set mykey 20      #设置Key的值为20
OK

在这里插入图片描述

192.168.199.40:6379> incr mykey        #该Key的值递增1
(integer) 21
192.168.199.40:6379> decr mykey        #该Key的值递减1
(integer) 20

在这里插入图片描述

192.168.199.40:6379> del mykey         #删除已有键
(integer) 1
192.168.199.40:6379> decr mykey         #对空值进行递减操作,其原值被设定为0,递减后的值为-1
(integer) -1

在这里插入图片描述
在这里插入图片描述

192.168.199.40:6379> del mykey
(integer) 1
192.168.199.40:6379> incr mykey         #将该键的Value设置为不能转换为整型的普通字符串
(integer) 1
192.168.199.40:6379> set mykey hello
OK
192.168.199.40:6379> incr mykey
(error) ERR value is not an integer or out of range

Redis数据类型之String数据类型_第2张图片
在这里插入图片描述

192.168.199.40:6379> set mykey 10
OK
192.168.199.40:6379> decrby mykey 5     #减少指定的整数
(integer) 5
192.168.199.40:6379> incrby mykey 10    #增加指定的整数
(integer) 15

Redis数据类型之String数据类型_第3张图片

3.GETSET

192.168.199.40:6379> incr mycounter    #将计数器的值原子性的递增1
(integer) 1

192.168.199.40:6379> getset mycounter 0  #在获取计数器原有值的同时,并将其设置为新值,这两个操作原子性的同时完成
"1"
192.168.199.40:6379> get mycounter      #查看设置后的结果
"0"


在这里插入图片描述

4.SETEX:

192.168.199.40:6379> setex mykey 15 "hello"  #设置指定Key的过期时间为10秒。
OK

在这里插入图片描述

192.168.199.40:6379> ttl mykey#通过ttl命令查看一下指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。
(integer) 4

在这里插入图片描述

192.168.199.40: 6379>get mykey      #在该键的存活期内我们仍然可以获取到它的Value。
"hello"

在这里插入图片描述

192.168.199.40:6379>ttl mykey      #该ttl命令的返回值显示,该Key已经过期。
(integer) 0
192.168.199.40:6379>get mykey     #获取已过期的Key将返回nil。
(nil)

在这里插入图片描述
在这里插入图片描述

5.SETNX:

192.168.199.40:6379>del mykey      #删除该键,以便于下面的测试验证。
(integer) 1
192.168.199.40:6379>setnx mykey "hello"      #该键并不存在,因此setnx命令执行成功。
(integer) 1

Redis数据类型之String数据类型_第4张图片

192.168.199.40:6379> setnx mykey "world"     #该键已经存在,因此本次设置没有产生任何效果。
(integer) 0

在这里插入图片描述

192.168.199.40: 6379>get mykey    #从结果可以看出,返回的值仍为第一次设置的值。
"hello"

6.MSET/MGET/MSETNX:

192.168.199.40:6379> mset key1 "hello" key "world"    #批量设置了key1和key2两个键。
OK

在这里插入图片描述

192.168.199.40:6379> mget key1 key2        #批量获取了key1和key2两个键的值。
1)"hello"
2)"world"

在这里插入图片描述

192.168.199.40:6379> msetnx key3 "hello" key4 "world"     #批量设置了key3和key4两个键,因为之前他们并不存在,所以msetnx命令执行成功并返回1。
(integer) 1

在这里插入图片描述

192.168.199.40:6379> mget key3 key,
1)"hello"
2) "world"

在这里插入图片描述

192.168.199.40:6379> msetnx key3 "hello" key5 "world"
#批量设置了key3和key5两个键,但是key3已经存在,所以msetnx命令执行失败并返回0。
(integer) 0
redis 127-0.0.1:6379> mget key3 key5    #批量获取key3和key5,由于key5没有设置成功,所以返回nil。
1)"hello"
2)(nil)

在这里插入图片描述

在这里插入图片描述

你可能感兴趣的:(redis,string)