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.