Redis-键遍历

1.全量遍历键

keys pattern

支持pattern匹配,使用的是glob风格的通配符

*代表匹配任意字符

?匹配一个字符

[]代表匹配部分字符[1,3]代表匹配1,3,[1-10]代表匹配1到10的任意数字

\x用来做转义,匹配星号和问号需要进行转义

删除所有以video字符串开头的键,redis-cli keys video* | xargs redis-cli del

Redis是单线程架构,执行keys很可能造成阻塞,生产环境可以执行如下操作:

1.在一个不对外提供服务的Redis从节点上执行,这样不会阻塞客户端的请求,但是会影响主从复制

2.如果键值总数确实比较少,可执行

3.使用scan命令渐进式的遍历所有的键

2.渐进式遍历

scan采用渐进式遍历的方式来解决keys命令带来的阻塞问题,每次执行时间复杂度是O(1),需执行多次scan,每次执行只扫描一个字典中的一部分键,直到将字典中的所有键遍历完成

scan cursor [match pattern] [count number]

Redis 提供hscan sscan zscan防止执行hgetall smembers zrange 可能产生的阻塞问题

如果在scan的过程中有键的变化,那么在遍历可能会新增的键没有遍历到

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值