key通用指令
key 特征
key是一个字符串,通过key获取redis中保存的数据
key应该设计哪些操作?
对于key自身状态的相关操作,例如:删除,判定存在,获取类型等
对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等
对于key快速查询操作,例如:按指定策略查询key
key 基本操作
1. type key :获取键对应的value的类型
2. del key:删除指定的key value
3.exists key:判断key是否存在
key 扩展操作(时效性控制)
为指定key设置有效期
expire key seconds 单位秒
pexpire key milliseconds 单位毫秒
expireat key timestamp 时间戳(Linux)
pexpireat key milliseconds-timestamp 毫秒时间戳(Linux)
获取key的有效时间
ttl key 如果一个key不存在返回 -2,如果一个key存在返回 -1,如果一个key设置了有效时长则返回还剩有效时长
pttl key 单位毫秒
切换key从时效性转换为永久性
persist key
key 扩展操作(查询模式)
查询key keys pattern
查询模式规则
* 匹配任意数量的任意符号 ? 配合一个任意符号 [] 匹配一个指定符号
keys * 查询所有
keys it* 查询所有以it开头
keys *bb 查询所有以bb结尾
keys ??aa查询所有前面两个字符任意,后面以aa结尾
keys user:? 查询所有以user:开头,最后一个字符任意
keys u[st]er:1 查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
key 其他操作
为key改名
rename key newkey 如果要改的名字已经存在,则覆盖原来的
renamenx key newkey 如果重名,则返回0,改名失败
对所有key排序(list、set、sortedset)
sort 例:sort aa sort aa desc...... 排序后原数据aa并不会发生顺序改变
其他key通用操作
help @generic 查看所有命令
数据库通用指令
数据库
key 的重复问题
key是由程序员定义的
redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key
数据不区分种类、类别混杂在一起,极易出现重复或冲突
解决方案
redis为每个服务提供有16个数据库,编号从0到15
每个数据库之间的数据相互独立
db 基本操作
切换数据库
select index
其他操作
quit 退出数据库
ping 测试服务器是否连通
echo message 在控制台打印message
db 相关操作
数据移动
move key db 移动数据到指定的数据库,数据不存则移动失败,如果目标库已存在相同的key,也会移动失败
数据清除
dbsize 查看当前库里有多少个key
flushdb 删除掉当前数据库全部信息
flushall 删除掉所有数据库全部信息