Redis 基础数据结构 常用的命令。
string(字符串)
键值对
172.19.190.187:6379>set s1 v1
OK
172.19.190.187:6379>get s1
v1
172.19.190.187:6379>exists s1
(integer) 1
172.19.190.187:6379>del s1
(integer) 1
172.19.190.187:6379>get s1
(nil)
批量键值对
172.19.190.187:6379>set s1 v1
OK
172.19.190.187:6379>set s2 v2
OK
172.19.190.187:6379>mget s1 s2 s3
1) v1
2) v2
3) (nil)
172.19.190.187:6379>mset s3 v3 s4 v4 s5 unknown
OK
172.19.190.187:6379>mget s3 s4 s5
1) v3
2) v4
3) unknown
过期和 set 命令扩展
可以对 key 设置过期时间,到点自动删除,这个功能常用来控制缓存的失效时间。
172.19.190.187:6379>set s6 v6
OK
172.19.190.187:6379>get s6
v6
172.19.190.187:6379>expire s6 5 【5秒 后过期】
(integer) 1
172.19.190.187:6379>get s6
(nil)
172.19.190.187:6379>setex s6 6 hello 【6秒 后过期,等价于 set+expire】
OK
172.19.190.187:6379>get s6
hello
172.19.190.187:6379>get s6
(nil)
172.19.190.187:6379>setnx s6 v6 【如果 s6 不存在就执行 set 创建 】
(integer) 1
172.19.190.187:6379>get s6
v6
172.19.190.187:6379>setnx s6 v7 【因为 s6 已经存在,所以set 创建不成功 】
(integer) 0
172.19.190.187:6379>get s6 【s6 的值没有变化】
v6
计数
如果 value 值是一个整数,还可以对它进行自增操作。自增是有范围的,它的范围是 signed long 的最大最小值,超过了这个值,Redis 会报错。
172.19.190.187:6379>set s1_age 30
OK
172.19.190.187:6379>incr s1_age
(integer) 31
172.19.190.187:6379>incrby s1_age 5
(integer) 36
172.19.190.187:6379>incrby s1_age -5
(integer) 31
172.19.190.187:6379>set s_max 9223372036854775807 【Long.Max】
OK
172.19.190.187:6379>incr s_max
ERR increment or decrement would overflow