redis 键管理

来源:互联网 发布:全民tv怎么没人了 知乎 编辑:程序博客网 时间:2024/05/22 14:42

单个键管理
1 键重命名
rename key newkey
这里写图片描述
如果在rename之前,newkey的键名已经存在,它的值也会被覆盖。为了防止被强行rename,redis提供了renamenx命令,只有newkey不存在时才被覆盖。
这里写图片描述
使用重命名是要注意:

  • 重命名期间会执行del命令删除旧键,如果键对应的值比较大,可能会存在阻塞redis.
  • 如果key和newkey同名,redis3.2返回OK,redis之前的返回Error

2 键过期
expire key seconds : 键在seconds秒后过期
expireat key timestamp : 健在秒级时间戳timestamp后过期
ttl key 可以查看过期剩余时间
这里写图片描述

ttl的返回值:
大于等于0的整数:键过期剩余时间
-1:键没设置过期时间
-2:键不存在

3 迁移键
move key db 用于redis内部数据库的迁移
一个redis中默认可以有16个数据库,编号是0-15,move命令可以将键迁移到另一个db中。redis在生产环境中都是使用集群,而在集群中redis只能使用db0这一个数据库,因此move就等于废掉了。
dump + restore 操作
分为两步:
- 在原redis中 使用 dump key 命令。dump会将键值序列化,格式是RDB格式。
- 在目标Redis上使用restorp key ttl value 命令将上面序列化的值进行复原,其中ttl参数代表过期时间,如果ttl=0代表没有过期时间。
需要在源redis中操作完了还要在目标redis中操作,很麻烦有没有。因此我比较喜欢第三中。
migrate host port key|”” destination-db timeout [copy] [replace] [keys key [key …]]
- host : 目标redis的IP
- port:目标redis的端口
- key|”“:Redis3.0.6版后支持迁移多个键,如果要迁移多个键此处为“”。
- destination-db:目标redis的数据库编号。(一般都是0)
- timeout:迁移的超时时间(单位是毫秒)
- [copy]:如果添加,迁移后不删除源键
- [replace]:如果添加此选项,不管目标中是否存该键都正常迁移覆盖数据


遍历键
keys pattern
pattern可以使用glob风格的通配符

  • *代表匹配任意
  • ?代表匹配一个字符
  • []代表匹配部分字符,如[1,3]代表匹配1,3 , [1-10]代表匹配1到10的任意数字
  • \x用来做转义
    这里写图片描述
原创粉丝点击