redis内存占用率持续飙升问题处理

生产环境的问题:春节前后,redis内存占用率持续飙升


从业务端排查,并没有大量的新增key缓存,但是redis监控上能看到增加了几百万的key。

因为key数量达到了6000万,怀疑是过期key不能及时释放内存导致。

粗暴验证:

在低峰时段执行keys xxxx*命令遍历key,几秒后kill掉命令,发现redis key数量减少了,内存占用也降低了,说明问题原因和猜测的一致。

 

延展问题:

Redis里面如果有大量的key,怎样才能高效的找出过期的key并将其删除呢,难道是遍历每一个key吗(keys命令确实能触发内存释放)?假如同一时期过期的key非常多,Redis会不会因为一直处理过期事件,而导致读写指令的卡顿?

答:

keys *命令确实会阻塞其他命令的执行,导致慢查询。

那Redis是怎么解决的呢?

Redis4.0新增了lazy free特性,从根本上解决Big Key(主要指定元素较多集合类型Key)删除的风险。lazy free可译为惰性删除或延迟释放;当删除键的时候,redis提供异步延时释放key内存的功能

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值