redis过期策略

Posted Kobelieve

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis过期策略相关的知识,希望对你有一定的参考价值。

  • redis过期策略
    • 定期删除
      • 缺省情况下,redis每隔100ms就随机选取一些设置了过期时间的key来检查,看其是否过期,如果过期了就删除。那么这里就会存在一个问题,假如redis中存在这100万个设置了超时时间的key,那么redis如果每隔这么短的时间去就检查,肯定会崩掉,所以redis才会定期抽选一些来检查。
    • 惰性删除
      • 如果定期没有抽取到已经过期的key,那么在取出这个key的时候,redis会检查,如果超时了,也会将其删除
    • 内存淘汰机制
      • 如果上面两种情况都同时没命中,那么大量过期key堆积在内存中,就导致redis内存块耗尽。所以这里就会走内存淘汰机制
        • noeviction:当内存不足以容纳新写入数据时,新写入操作会报错,很少用
        • allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 key,最常用
        • llkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key,很少用
        • volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的 key
        • volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个 key
        • volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的 key 优先移除

以上是关于redis过期策略的主要内容,如果未能解决你的问题,请参考以下文章

Redis的过期策略和内存淘汰策略

Redis的过期策略和内存淘汰策略

Redis过期删除策略和内存淘汰策略

Redis 配置过期自动删除策略

Redis过期键删除策略及原理

Redis的过期删除策略