Skip to content

redis判断内存是否满了,取决于配置项maxmemory。当redis的使用内存大于这个配置项的时候会触发内存淘汰策略。

内存淘汰策略一般一般有这么几种

  1. 默认策略:所有写报错,所有读正常。

    • 适用场景:数据库和缓存强一致,数据不能丢。
  2. 缓存场景下:

    • 如果我们把redis就当缓存用,通常会 淘汰冷数据,保留热数据,那么策略会设置为allkeys-lru.

      意思是淘汰所有的key,算法是最近最少使用。

    • 如果我们存在周期性访问冷数据的场景,那么推荐使用LFU算法,意思是按照访问频率清除key

  3. 混合场景下:既当缓存又当DB,不能删除所有的key,那么可以使用volatile-lru.意思是redis只会清理哪些设置了过期时间的key.