一、String数据类型
String是Redis最基本的类型,最大能存储512MB的数据,String类型是二进制安全的,即可以存储人了数据类型,比如数字、图片、序列化对象等
1. SET/GET/APPEND/STRLEN命令
PS:APPEND
APPEND key value追加键值,并返回追加后的长度(若键不存在,则相当于创建)
exists home
#判断该键是否存在,存在返回1,否则返回0
append home "cat"
#该键并不存在,因此append命令返回当前value的长度
append home "dog"
#该键已经存在,因此返回追加后的value的长度
get home
#通过get命令获取该键,以判断append的结果
2、 INCR/DECR/INCRBY/DECRBY命令
INCR key:key值递增加1(key值必须为整数)
DECR key:key值递减1(key值必须为整数)
3、 GETSET命令
GETSET key value:获取key值并返回,同时给key设置新值
127.0.0.1:6379> incr test 没有的键 值递增1
(integer) 1
127.0.0.1:6379> getset test 0 在获取计数器原有值的同时,并将其设置为新值,这两个操作原子性的方式同时完成。
"1"
127.0.0.1:6379> get test #查看设置后的结果。
"0"
4、SETEX命令
setex key seconds value:设置指定key的过期时间为seconds
作用场景
redis 127.0.0.1:6379> setex mykey 15 "hello" #设置指定Key的过期时间为15秒。
redis 127.0.0.1:6379> ttl mykey #通过tt1命令查看指定Key的剩余存活时间(秒数),0表示已经过期,-1表示永不过期。
(integer) 4
redis 127.0.0.1:6379> get mykey #在该键的存活期内我们仍然可以获取到它的Value。
"hello"
redis 127.0.0.1:6379> ttl mykey #该ttl命令的返回值显示,该Key已经过期。
(integer) -2
redis 127.0.0.1:6379> get mykey #获取已过期的Key将返回nil
redis -1 往往代表的是一个上限,表示所有的意思
-2 表示的失效/过期
5、 SETNX命令
SETNX key value:不存在键的话执行set操作,存在的话不执行
6.MSET/MGET/MSETNX
MSET key value [key value …]:批量设置键-值对
MGET key [key …]:批量获取键值对
MSETNX key value [key value …]:批量设置键-值对,都不存在就执行并返回1;只要有一个存在就不执行并返回0
127.0.0.1:6379> mset key1 "hello" key2 "world" #批量设置了key1和key2两个键。
OK
127.0.0.1:6379> mget key1 key2 #批量获取了key1和key2两个键的值。
1) "hello"
2) "world"
127.0.0.1:6379> msetnx key3 "zhang" key4 "san" #批量设置了key3和key4两个键,因为之前他们并不存在,所以msetnx命令执行成功并返回1。
(integer) 1
127.0.0.1:6379> mget key3 key4
1) "zhang"
2) "san"
127.0.0.1:6379> msetnx key3 "li" key4 "si" #批量设置了key3和key4两个键,但是key3和key4已经存在,所以msetnx命令执行失败并返回0。
(integer) 0
127.0.0.1:6379> mget key3 key4
1) "zhang"
2) "san"
127.0.0.1:6379> msetnx key3 "li" key5 "si" #批量设置了key3和key5两个键,但是key3已经存在,所以msetnx命令执行失败并返回0。
(integer) 0
127.0.0.1:6379> mget key3 key5 #批量获取key3和key5,由于key5没有设置成功,所以返回nil
1) "zhang"
2) (nil)