理解 Redis(3) - 关于 string 的更多命令(SETEX, SETNX, INCR, DECR, MSET...)

上一节介绍了关于字符串值的一些基本命令, 这一节将介绍一些进阶命令:

清理终端:

127.0.0.1:6379> clear

设置一个键值对, 同时设置过期时间为10秒:

127.0.0.1:6379> setex name 10 max OK 127.0.0.1:6379> get name "max"

查看剩余的过期时间:

127.0.0.1:6379> ttl name (integer) 4 127.0.0.1:6379> ttl name (integer) 0 127.0.0.1:6379> get name (nil)

设置一个键值对, 同时设置过期时间为30000毫秒, 注意, 使用 psetex 设置过期时间, 时间的单位为毫秒:

127.0.0.1:6379> psetex name3 30000 july OK 127.0.0.1:6379> ttl name3 (integer) 26

设置一个键值对, 但是想要确认这个键是否已被占用, 可以用 setnx, 如果已经被占用, 则返回0, 即没有执行成功:

127.0.0.1:6379> set name tom OK 127.0.0.1:6379> setnx name join (integer) 0 127.0.0.1:6379> get name "tom"

如果未被占用, 则返回1, 即操作成功:

127.0.0.1:6379> setnx name2 join (integer) 1 127.0.0.1:6379> get name2 "join" 127.0.0.1:6379> keys * 1) "name2" 2) "name"

获取值的字符串长度:

127.0.0.1:6379> get name "tom" 127.0.0.1:6379> strlen name (integer) 3 127.0.0.1:6379> get name2 "join" 127.0.0.1:6379> strlen name2 (integer) 4

同时设置多个键值对, 这里故意设置了两个 num2 的值, 可以看到会存入后者:

127.0.0.1:6379> mset num1 40 num2 60 num2 70 OK 127.0.0.1:6379> keys * 1) "name" 2) "name2" 3) "num1" 4) "num2" 127.0.0.1:6379> get num2 "70"

以 1 为单位, 增加/减少值:

127.0.0.1:6379> get num1 "40" 127.0.0.1:6379> decr num1 (integer) 39 127.0.0.1:6379> get num1 "39" 127.0.0.1:6379> incr num1 (integer) 40 127.0.0.1:6379> get num1 "40"

增加/减少值, 但是可以自定义每次增加/减少的量:

127.0.0.1:6379> incrby num1 5 (integer) 45 127.0.0.1:6379> get num1 "45" 127.0.0.1:6379> decrby num1 10 (integer) 35 127.0.0.1:6379> get num1 "35"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwfxf.html