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

本文介绍了Redis中键的管理,包括重命名键、设置过期时间、迁移键到不同数据库,以及遍历键的方法。还讨论了数据库的选择和清理。值得注意的是,Redis的键过期策略,以及非原子性的rename操作。此外,migrate命令提供了原子性的数据库间迁移功能。
摘要由CSDN通过智能技术生成

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清除所有数据库

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值