Key特征
- key是一个字符串,通过key获得redis中保存的数据
- 对于key自身状态的相关操作,例如:删除、判定存在、获得类型等
- 对key时效性的相关操作,例如:有效期设定、判定是否有效、有效状态切换等
- 对于key的快速查询,例如:指定策略查询key
- …
key的基本操作
- 删除key
del key
- 获得key是否存在
exists key
- 判断key的类型
type key
key的扩展操作—时效性控制
- 为key设置有效期,有效期过了key将被删除
expire key seconds # 秒为单位
pexpire key millisconds # 毫秒为单位
expireat key timestamp # 时间戳
pexpireat key milliseconds-timestamp
- 获得key的有效时间
ttl key # 单位秒
# 返回key剩余的有效时间,如果已经失效返回-2
# 如果没有给key设置有效时间则返回-1
pttl key # 单位毫秒
- 切换key从时效性转换为永久性,只能将设置了时效性的可以永久化
persist key
# 操作成功返回1,失败返回0
# 永久化后再用ttl获得有效时间会返回-1
key的扩展操作—查询模式
- 查询key
# pattern类似于正则表达式的写法
keys pattern
eg.
命令 | 含义 |
---|---|
keys * | 查询所有的key |
keys iostream* | 查找以iostream开头的所有key |
keys *iostream | 查找以iostream结尾的所有key |
keys ??iostream | 查找开头两个字符任意,以iostream结尾的所有key |
keys users:? | 查找以users:开头的,结尾一个字符任意的所有key |
keys u[st]er:1 | 查找u开头,er:1结尾,中间一个字符是s或t的key |
查询模式规则
- * 匹配任意数量的任意符号, 匹配多个符号,可以是0个
- ? 匹配任何一个符号,只匹配单一一个字符,必须占一个字符位
- [] 匹配一个指定的符号
keys的其它操作
- 为key改名, 注意可能会覆盖已经存在的数据
rename key newkey # 一点可以改名成功
# 如果newkey不存再则,改为newkey,改名成功
# 如果newkey存在,则会将newkey中的元数据覆盖,改名成功
renamenx key newkey # newkey不存再才能改名成功,推荐使用这个命令
- 对key包含的值排序
sort key
# 默认升序,可跟上desc变为降序
# 不会改变原数据的顺序
- 其他key的通用操作
help @generic