Redis系列-8.键管理
来源:互联网 发布:android图案解锁源码 编辑:程序博客网 时间:2024/06/18 11:54
Redis系列-8.键管理
文章中可能有地方描述偏差,欢迎留言指证
- Redis系列-8键管理
- 基本
- 单个键管理
- 键重命名
- 键重名防覆盖
- 随机返回一个键
- 键过期
- 迁移键
- 遍历键
- 渐进式遍历
1.基本
很多命令在之前的文章中其实已经讲到过了,这里再统一说一下。同时对一些管理上的命令再讲一下。
2.单个键管理
下面所有描述里 {}都是必需参数,<>是可选参数
键重命名
rename {key} {newkey}key:键名newkey:新键名结果:成功会返回ok
这个命令还是很简单,直接修改键值对数据中的键名。但要主意的是:如果要重命名为“X1”,在执行前已经存在键叫“X1”了,会直接覆盖掉同名的键。
而且,此命令会在执行之前调用del命令,如果键值较大时会存在阻塞的可能性
键重名(防覆盖)
为了解决会覆盖掉的问题,redis提供了一个新的命令。只有当新键不存在时才会成效。
renamenx {key} {newkey}key:键名newkey:新键名结果:成功会返回1,失败返回0
随机返回一个键
和集合中随机有点区别的时,此命令是从当前redis是实例中,从所有键中随机返回一个。
randomkey结果:返回一随机出中的键,没有值
类似于随机删除一个键。
键过期
expire {key} {seconds}key:键名seconds:以秒为单位的过期时间 expireat {key} {timestamp}key:键名timestamp:以秒为单位的时间戳
expireat命令的时间参数是时间戳。比如“2016-08-01 00:00:00”转换后就是1469980800。
pexpire {key} {milliseconds}key:键名seconds:以毫秒为单位的过期时间 pexpireat {key} {milliseconds-timestamp}key:键名timestamp:以毫秒为单位的时间戳
1..如果过期时间为负,则会删除键,如使用del一样。
2.persist命令会去除过期时间
3.对于字符串类型,使用set命令时会去掉过期时间
除了这两个命令外,可能还需要查询剩余的时间。用ttl获pttl都可以查询。但pttl查询精度更高,以毫秒为单位。有3种返回值:
1.大于0 剩余的时间
2.-1 没有设置过期时间
3.-2 键不存在
使用方式: 命令 {键名}
迁移键
数据迁移使用命令迁移不是一个很好的办法,因为命令是针对一个键来迁移,如果手动迁移会累死的。
具体命令请在使用时百度一下,很简单。这里就不再讲述了。
遍历键
keys {pattern}pattern:可以是键名,也可以是带通配符的键名。glob模式的通配符
glob风格模式:
*代表任意字符
?代表匹配一个字符
[]代表匹配部分字符,如[1,3]就是1到3.[1,10]代表1-10任意的数字
\x 转义符,如果键名中需要用到* ?,就需要转义
keys * 遍历所有键
keys [j,r]edis 键名中第2345位是edis,第一位是j到r任意的字母
keys r?edis 用?代替那个位置的字母
不要在线上服务器中使用此命令,此命令会遍历所有键,当键较多时,会阻塞服务器。而redis又是单线程程序,后果会很严重。下面会介绍渐进式遍历
3.渐进式遍历
为了解决遍历时会阻塞的问题,redis提供了渐进式遍历
scan {cursor} [MATCH pattern] [COUNT number]cursor:下次渐进式遍历时所需要的下标,第一次从0开始,如果再次变成0说明遍历完成MATCH pattern:模式匹配,和keys一样。输入时需要写上matchCOUNT number:每次遍历时的数目,默认为10.修改后无需每次都带上。同样输入时需要写上count
使用上如图:
同时redis还针对哈希类型,集合类型,有序集合提供了对应的遍历命令。
hscan 哈希
sscan 集合
zscan 有序集合
使用上同scan类似,这里不再赘述
- Redis系列-8.键管理
- Redis 键管理
- redis 键管理
- redis学习系列--8.redis-实用特性
- Redis系列
- Redis系列
- Redis系列
- redis系列-redis安装
- Redis管理
- Redis管理
- Redis --- 管理
- (Ryan的Redis系列博客)4.Redis的键
- Redis系列~键(key)(五)
- Redis系列-初识redis、安装
- redis系列-redis的连接
- Redis系列-远程连接redis
- Redis事务--Redis系列七
- redis系列-redis的连接
- Python里matplotlib图像里的中文输出问题
- JFreeChart实现图形报表
- C++基础---string类和标准模板库
- Spring学习笔记:自动创建Proxy
- 文件压缩
- Redis系列-8.键管理
- java基础-个人知识点杂记2.数据库基于日志的恢复
- pandas数据操作
- 技术篇~第一章 数据同步
- C语言之指针专题二:指针做函数参数是指针存在的最大意义
- 线程初步(五)---join,yield
- Java面试题全集(下)
- 写给自己·工作的第5年
- Hive的元数据表结构详解