redis的key过期策略+内存淘汰策略

2023-02-16  本文已影响0人  java后端领域

redis的 key 过期策略是怎么样的

redis 的过期策略主要是定期删除和懒删除来实现的

定期删除

redis 定时每间隔大约100ms进行随机抽选择1批key,对过期的key进行删除,并且根据过期key的占比以及执行的实现来是否继续循环。为了就是在可控的时间内尽可能删除过期的key并且尽量不占用太多CPU资源影响业务请求。
具体步骤:

1. 从过期字典最近抽取20个key
2. 将这个20个key中过期的key进行删除,如果过期的key占比抽样的个数占比超过25%,重复1步骤;同时避免一致循环,执行时间超过25ms退出循环;

懒删除

通过定期删除,可以在一定程度上删除过期的key,但是可能删除不及时,又被请求访问到,所以在请求访问到过期key时,会触发删除,并且返回空给业务,保证过期的语义准确性。

redis 的内存淘汰策略

redis 为了应对内存不足的场景,定制了8种策略给使用方进行配置选择,具体如下:

  1. Redis 4.0 之前有以下 6 种淘汰策略:
  1. 在 Redis 4.0 版本中又新增了 2 种淘汰策略:
实战建议:生产实战中,使用最多的是 volatile-lru。同时听过配置使用容量阈值告警,一般超过60~80%就触发告警,评估是否需要进行扩容,避免出现超过最大内存。

本文由[mdnice](https://mdnice.com/?platform=6)多平台发布
上一篇下一篇

猜你喜欢

热点阅读