Redis-在千万/亿级别数据中筛选数据-场景分析

1、问题描述

假如 Redis 里面有 1 亿个 key ,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如何将它们全部找出来?

2、 解决方式

使用Keys指令扫描出指定模式的key列表。

3、问题升级

  • 这个Redis正在给线上的业务提供服务,采取2的keys指令会带来什么问题?
  • 如何解决这个新的问题?

4、深入分析

  • Redis是单线程的,keys指令执行的时候会阻塞线程一段时间,这时候Redis对线上业务的服务就会暂停,直至keys指令执行完毕瑷珲恢复。
  • 使用scan指令规避以上问题:scan 指令可以无阻塞的提取出指定模式的 key 列表,但是会有一定的重复概率。
  • 解决重复只需要在客户端去重即可。使用scan指令整体的花费大于keys指令,要区分使用场景的不同需求。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值