key是一个字符串,通过key获取redis中保存的数据
key应该设计哪些操作?
对于key自身状态的相关操作,例如:删除,判定存在,获取类型等
对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等
对于key快速查询操作,例如:按指定策略查询key
……
删除指定key
del key1 [key2]
获取key是否存在
exists key
获取key的类型
type key
为指定key设置有效期
expire key seconds // secondes时间值 /?k?s pa? ?(r)/ 失效、期满、终止
pexpire key milliseconds
// 使用时间戳
expireat key timestamp
pexpireat key milliseconds-timestamp
获取key的有效时间
ttl key
返回三种状态
(integer)20 表示访问的key剩余20存活时间
(integer)-1 表示访问的key存在 (key没设置有效时长)
(integer)-2 表示访问的key不存在
pttl key
切换key从时效性转换为永久性
persist key /p??s?st/ 存留、持续
查询key
keys pattern // pattern /?p?tn/ 模式
查询模式规则
* 匹配任意数量的任意符号 ? 配合一个任意符号 [ ] 匹配一个指定符号
keys * 查询所有
keys it* 查询所有以it开头
keys *heima 查询所有以heima结尾
keys ??heima 查询所有前面两个字符任意,后面以heima结尾
keys user:? 查询所有以user:开头,最后一个字符任意
keys u[st]er:1 查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
为key改名
rename key newkey
// 当修改的key名已存在,会把已存在的key与对应的value覆盖,相当于执行了set key value操作
renamenx key newkey
// 如果key不存在 则修改,存在不修改
对key内数据排序
sort key // 并且key中值需要是数值类型。
// 默认是esc递增,desc倒序排序
其他key通用操作
help @generic
key 的重复问题
key是由程序员定义的
redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key
数据不区分种类、类别混杂在一起,极易出现重复或冲突
解决方案
redis为每个服务提供有16个数据库,编号从0到15
每个数据库之间的数据相互独立
切换数据库
// redis为每个服务提供有16个数据库,编号从0到15 ,index是0-15的编号select index
其他操作
quit // 退出
ping // 测试服务器是否连接成功,返回PONG
echo message // 你输入什么,就输出什么,相当于打印日志
数据移动
move key db 相当于剪切操作,移动后原库中数据就不存在了,并且移动要保证库中没有,有则移动失败
数据清除
dbsize 查看库中key的总量
flushdb 清除当前数据库中数据
flushall 清除所有库中数据
原文:https://www.cnblogs.com/leizia/p/15312655.html