redis教程4 (健管理, 健重名, 健过期, 迁移健, 遍历健, 数据库管理)
创始人
2025-05-31 16:21:42

redis教程4 (健管理, 健重名, 健过期, 迁移健, 遍历健, 数据库管理)

    • 健管理
    • 健迁移
    • 遍历健
    • 数据库管理

健管理

  1. 健重命名
rename key newKey
// 注意rename 时如果newKey 存在的话, 会覆盖
renamenx key  newKey 
renamenx 保证了只有在newKey 不存在的时候才会被重命名成功
// rename 非原子操作, 先删除旧健, 在新增新建
  1. 随机返回一个健
randomkey 
dbsize count 有多少健
randomkey 随机返回一个健
  1. 健过期
expire key seconds.     健在多少秒过期
expireat key timestamp 健在秒级“时间戳” 后过期
ttl key 查询key 的有效时间
ttl 与pttl 都可以查询剩余时间, pttl精度更高, 可以达到毫秒级的
// 返回大于0 的整数, 即剩余时间
// 返回-1 没有设置过期时间
// 返回-2 已过期, 健不存在
  1. 在redis里面执行set 命令会抹去key的有效期设置, setkey 函数最终执行了removeExpire(db, key)
  2. redis 不支持二级数据结构(哈希, 列表) 内部元素的过期功能, 不支持对列表的元素进行过期时间设置。
  3. setex 命令为set expire 的组合, 不但是原子操作, 而且减少了一次网络通信。

健迁移

  1. move
move key db 
// move 主要在redis内部运用, 在redis 内部有多个数据库, move 的作用就是把key 从源数据库移到目标数据库。
  1. dump + restore
dump key 
restore key ttl value 
// 可以在不同的redis 实例之间做数据迁移:
// 在源redis上, dump 命令会将键值序列化, 采取的方式就是rdb格式   
// 在目标redis上, restore 命令将上面的序列化的值进行复原, 其中ttl参数代表过期时间, 如果ttl = 0代表没有设置过期时间
// 要注意:
// 整个过程非原子性的
// 整个过程开启了源Redis和目标Redis的传输在源redis上执行
set key value 
dump key 在目标redis上执行
restore key ttl value
  1. migrate

migrate host port key | “” destination-db timeout [copy] [replace] [keys key key…]
migrate 也是数据库之间进行的数据迁移, 是将dump, restore, del命令三者结合, 同时具有原子性。

migrate 127.0.0.1 6380 hello 0 1000
//源redis 6379。   目标: 6380, 将6379的hello健迁移到6380上, 同超时时间为1000毫秒 

遍历健

  1. keys pattern 全量遍历
  2. 渐进式遍历
scan cursor [match pattern ]  [count number]   可以做分页
scan 0 
结果为两部分:
第一部分: 下次cursor 的值
第二部分: 返回本次的健

数据库管理

  1. select dbindex 切换数据库
  2. flushdb/flushall flushdb清除当前数据库, flushall清除所有数据库

清除数据库 谨慎使用, 特别是生产

相关内容

热门资讯

分享给玩家(来玩德州app)透... 亲,来玩德州app这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别...
分享给玩家(WPK线上)透明挂... 分享给玩家(WPK线上)透明挂辅助助手(透视)详细教程(有挂详情)-哔哩哔哩亲,有的,ai轻松简单,...
讲解教程!微信怎么购买斗牛房卡... 讲解教程!微信怎么购买斗牛房卡微信斗牛房卡链接哪里有要素一(KK)咨询房/卡添加微信:【560013...
分享给玩家(wpkplus)透... 您好.wpkplus这款游戏可以开挂的,确实是有挂的,需要了解加微【97762250】很多玩家在这款...
分享给玩家(hhpoker德州... 自定义hhpoker德州系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不...