Appearance
redis判断内存是否满了,取决于配置项maxmemory。当redis的使用内存大于这个配置项的时候会触发内存淘汰策略。
内存淘汰策略一般一般有这么几种
默认策略:所有写报错,所有读正常。
- 适用场景:数据库和缓存强一致,数据不能丢。
缓存场景下:
如果我们把redis就当缓存用,通常会 淘汰冷数据,保留热数据,那么策略会设置为allkeys-lru.
意思是淘汰所有的key,算法是最近最少使用。
如果我们存在周期性访问冷数据的场景,那么推荐使用LFU算法,意思是按照访问频率清除key
混合场景下:既当缓存又当DB,不能删除所有的key,那么可以使用volatile-lru.意思是redis只会清理哪些设置了过期时间的key.