Redis-Strings命令说明
Redis Strings操作命令
set(设置字符串)
时间复杂度: O(1)
设置一个key:value 如果key已存在,那就会直接覆盖掉value(不管类型)
1 | set key vale [EX seconds | PX milliseconds | EXAT timestamp |PXAT milliseconds-timestamp | KEEPTTL | NX | XX] [GET] |
参数说明
- EX 设置key多久之后过期 单位秒
- PX 设置key多久之后过期 单位毫秒
- NX 只有当key不存在时才设值(NOT EXISTS)
- XX 只有当key存在时才设值
- KEEPTTL (6.0新增)保留前一个key设置的TTL(过期时间),例如,
set k a EX 10
,5
秒后执行set k b KEEPTTL
那么现在k
的值就是b
,TTL还剩5S
- EXAT (6.2新增)设置key的过期时间戳 精确到秒
- PXAT (6.2新增)设置key的过期时间戳 精确到毫秒
- GET (6.2新增)返回旧值,不存在旧值就返回
nil
返回值
- ok: 正常执行
- nil: 值没有被设置(指定了
NX
XX
条件时)
mset(设多个key)
时间复杂度: O(N) N = key的数量
1 | mset key value |
返回值
- ok: 总是返回
ok
mset 不会失败
get(获取字符串的值)
时间复杂度: O(1)
get只能处理string类型
获取一个key的值,key不存在就返回nil
,如果key对应的value的类型不是string 那就会报错。
返回值
1.
mget (获取多个值)
时间复杂度:O(N) N=key的数量
1 | mget key |
返回一个集合,和指定的key顺序一致,如果其中默认key不存在,那么对应的value就为nil
del(删除元素)
时间复杂度: O(N)
N 取决于待删除key的类型
- string: O(1)
- 集合类型: N=集合中的元素数量
删除一个key,如果key不存在那就忽略
incr(累加一个数字)
时间复杂度: O(1)
1 | incr key |
给key 对应的值 累加1 如果key不存在 那么就是把key的值设置为0. 如果value不是数字就会抛出异常
最大为64位符号整数(2^63 - 1)
应用场景:
- 计数器(counter)
- 限流器(rate limiter)
decr(累减一个数字)
同 incr
1 | decr key |
incrby(增加数字)
时间复杂度: O(1)
1 | incrby key increment |
给key 增加指定的数字, incr key
相当于 incrby key 1
decrby (减少数字)
和
incrby
类似
1 | decrby key decrement |