Redis-5.过期策略和内存淘汰机制

过期策略

过期策略:定期删除+惰性删除
定期删除:redis每隔100ms会从设置了过期时间的key里,随机抽取一部分key查看是否已经过期,如果过期就删除。
惰性删除:redis在使用某个key时,先检查key是否已经过期,如果过期就删除

内存淘汰机制

tips:具体使用哪一个看自己的业务场景

  • noeviction: 当内存不足以容纳新写入数据时,新写入操作会报错,这个一般没人用吧,实在是太恶心了。
  • allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 key(这个是最常用的)。
  • allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个 key
  • volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的 key
  • volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个 key。
  • volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的 key 优先移除。

Redis4.0新增两种淘汰策略
volatile-lfu:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,删除被访问频次低的key
allkeys-lfu:当内存不足以容纳新数据时,在所有键空间里,移除访问频次低的key

过期策略的修改使用

在redis的配置文件redis.conf文件中,我们可以配置具体使用哪种过期策略
Redis-5.过期策略和内存淘汰机制_第1张图片

你可能感兴趣的:(中间件,#,Redis,redis)