redis生产环境查做Keys正则匹配操作

  平时我们在redis中查找某一固定前缀的key一般使用的命令是:keys pattern,但是在生产环境中这是个很危险的命令。如果生产环境数据量很大,使用这个命令会导致redis锁住和CPU飙升,其他业务全部阻塞(因为redis是单线程的),等到这个命令结束的时候全部请求瞬间打到redis中导致缓存雪崩,redis崩了导致数据库也扛不住了。

1.生产环境如何禁用这个命令

redis.conf文件中,在SECURITY这一项中,我们新增命令:

rename-command KEYS     ""

2.使用游标代替keys命令

游标的特点是每次只返回一部分数据,而keys命令要全部遍历完数据才返回结果,相比之下使用游标遍历更加安全。

游标的语法为:SCAN cursor [MATCH PATTERN] [count]

每次返回一个整数和部分结果值,当整数不为0是代表还没有遍历完,再输入返回的整数继续遍历。

示例:从0开始遍历,每次返回10条数据

第二次遍历的时候直接用第一次返回的整数来继续遍历 

另外,每次遍历的结果可能会有重复,需要在代码里用HashSet去重。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值