一,键管理
1. 键的重命名
rename oldkey newkey 键的重命名
renamenx oldkey newkey 重命名,要求newkey不存在
dbsize 查看库
randomkey 返回随机键
2. 键过期
expire name second 设置name在second秒后过期( 对于字符串二次设值后,expire无效)
expireat key unixtime 设置key在unixtime 时间戳后过期
pexpire key milli 设置key 在milli 毫秒过期
ttl key 查看key的过期时间,单位秒
pttl name 查看name的过期世界,单位毫秒
persist key 去掉过期时间
3. 键的迁移
move key db 将key 移动到第db个库上面,适合单机同redis
dump key 会返回该key的value
restore key ttl value 通过其他redis执行dump key 产生的value将数据拷贝到该redis上
migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key] 拷贝到其它实例redis
migrate | 192.168.1.118 | 6379 | test | 0 | 1000 | copy | replace | keys |
指令 | 要迁移的目标IP | 端口 | 迁移键值 | 目标库 | 超时时间 | 迁移后不删除原键 | 不管目标库是不存在test键都迁移成功 | 迁移多个键 |
4. 键的遍历
keys pattern 全遍历,pattern 可组合使用
* | 匹配所有, keys * 查看所有key keys user* 查看所有以user开头的键 |
? | 匹配一个字符 keys na?e |
[] | 全量匹配key keys [n,a,g] 匹配n a g |
(考虑到是单线程, 在生产环境不建议使用全遍历,如果键多可能会阻塞。)
scan cursor [MATCH pattern] [COUNT count] 渐进式遍历。用于迭代当前数据库中的数据库键。返回两个结果,第一个结果用于下一次迭代的新游标,第二个结果是本次所有被迭代的元素。如果数据集合不是以哈希表作为底层实现的话,则scan类命令无视count选项,直接返回数据集合中的所有元素
scan 0 match n* //匹配以n开头的键,第一次scan 0开始
第二次从游标52开始取以n开头的键,相当于一页一页的取。当最后返回0时,键被取完
(渐进式遍历可有效地解决keys命令可能产生的阻塞问题)
sscan key cursor [MATCH pattern] [COUNT count] 用于迭代set集合键中的元素
hscan key cursor [MATCH pattern] [COUNT count] 命令用于迭代哈希键中的键值对
zscan key cursor [MATCH pattern] [COUNT count] 命令用于迭代有序集合中的元素(包括元素成员和元素分值)
二,redis数据库管理
select index 选择redis库,index范围:[0,15] ( 其中redis3.0以后的版本慢慢弱化了这个功能,如在redis cluster中只允许0数据库。原因是:1,redis单线程,如果用多个库,这些库使用同一个CPU,彼此会有影响 2,多数据库,调试与运维麻烦,若有一个慢查询,会影响其它库查询速度 3,来回切换,容易混乱 )
dbsize 查看当前db下有多少键
flushdb 清空当前db下的所有数据
flushall 清空所有db[0-15] 下的所有数据