redis命令学习的注意问题

1.set get命令只用于字符串,get命令取key值时string正常返回,没有key返回nil,其他类型会报错

设置的时候是set test redis ex 200000等同于SETEX test 200000 redis 下面的有一个test和test2设置完成之后的效果相同

set重新设置一个可以的有效期限会将原有的有效期限覆盖

ex设置有效期限单位为秒 px为毫秒

nx是看此key是否存在,存在设置失败,返回nil,不会覆盖原来的值,成功返回ok。

xx是与nx相反,key不存在设置失败,返回nil,存在的话就会堵盖原来的值

127.0.0.1:6379> set test redis ex 200000 #设置一个string的key并给它设置一个有效期限时间为200000秒
OK
127.0.0.1:6379> get test #获取当前key的值
"redis"
127.0.0.1:6379> LPUSH test redis mongodb mysql #设置一个list key为test,但是test已经存在所以会报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> LPUSH test1 redis mongodb mysql #换个名称,成功返回
(integer) 3
127.0.0.1:6379> get test1 #想要获取list类型的key值,但是get只适合string型所以失败报错
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> TTL test #查看key值得剩余期限
(integer) 199300
127.0.0.1:6379> SETEX test2 200000 redis1 #设置一个key并设置期限,这个和第一行执行的效果相同
OK
127.0.0.1:6379> set test2 redis1 px 100 #设置一个key,期限单位为毫秒
OK
127.0.0.1:6379> get test2 #在期限之后为过期的key会删除
(nil)
127.0.0.1:6379> set test2 redis nx #设置一个key,因为之前不存在这个key,所以加上nx会成功
OK
127.0.0.1:6379> set test2 redis nx #设置相同的key,因为之前存在这个key,所以失败,返回nil
(nil)
127.0.0.1:6379> get test2 #获取这个key的值,并没有被覆盖
"redis"
127.0.0.1:6379> set test3 lixue xx #设置这个key,因为这个key不存在,所以设置失败,返回nil
(nil)
127.0.0.1:6379> set test3 lixue #设置一个key用于下面的测试
OK
127.0.0.1:6379> set test3 lixue1 xx #设置这个key,因为这个key存在,所以设置成功,返回ok
OK
127.0.0.1:6379> get test3 #获取这个key,然后值被覆盖
"lixue1"

 2.ttl key查询相应key剩下的有效生命期(上面有设置ex)

127.0.0.1:6379> TTL test
(integer) 199300

127.0.0.1:6379> ttl test2
(integer) 199986

 3.

原文地址:https://www.cnblogs.com/cuteCoderSnow/p/10457170.html