redis深度历险06-key和scan

redis深度历险06-keys和scan

keys

keys *     --获得所有的key
keys f*    --获得f开头的key
keys f*f   --获得f开头,f结尾的key

此方法的缺点

  1. 没有分页
  2. 复杂度o(n),造成卡顿

scan --游标遍历

  1. 复杂度o(n),但是通过游标分布,不会阻塞。
  2. 提供limit参数
  3. 提供模式匹配的方式
  4. 服务器不需要保存游标状态,游标的唯一状态就是scan返回给客户端的游标整数
  5. 返回的结果可能重复,需要客户端去重
  6. 遍历过程中如果数据修改,改动后的数据不一定能遍历到。
  7. 单次返回结果是空并不意味着遍历结束,而要看返回的游标值是否为零
scan cursor match f* count 100   --会返回cursor游标和结果值。游标用来下一次比遍历,第一次游标用传0

大key扫描

在平时的业务开发中,尽量避免大key的产生

原理:scan扫描,得到key,判断key类型,通过size或者len得到大小,排序。Redis官方在redis-cli提供了这样的扫描功能。

reis-cli -h 127.0.0.1 -p 7001 --bigkeys

如果担心次命令造成ops提升。可以添加休眠参数

redis-cli -h 127.0.0.1 -p 7001 -i 0.1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值