【redis】redis淘汰策略

一、说明
  • 1.redis key没有设置过期时间被redis主动删除了
  • 2.当redis已用内存超过maxmemory限定时,触发主动清理策略
  • 3.主动清理策略在redis4.0之前一共实现了6种内存淘汰策略,在4.0之后,增加了2种,总共8种
二、淘汰策略
2.1 针对设置了过期时间的key做处理
  • 1.volatile-ttl:在筛选时,会针对设置了过期时间的键对值,根据过期时间的先后进行删除,越早过期的越先被删除
  • 2.volatile-random:针对设置了过期时间的键值对随机删除
  • 3.volatile-lru:会使用lru算法筛选设置了过期时间的键值对删除(Least Recently Used的缩写,即最近最少使用)
  • 4.volatile-lfu:会使用lfu算法筛选设置了过期时间的键值对删除(Least Frequently Used的缩写,即最不经常使用)
2.1 针对所有key做处理
  • 1.allkeys-random:从所有键值对中随机选择并删除数据
  • 2.allkeys-lru:使用LRU算法在所有数据中进行筛选删除
  • 3.allkeys-lfu:使用LFU算法在所有数据中进行筛选删除
2.1.不处理
  • 1.noeviction:不会删除任何数据,拒绝所有写入操作并返回客户端错误信息,redis只响应读操作((error) OOM command not allowed when used memory)
三、LRU和LFU的区别
  • 1.LRU,最近最少使用,淘汰很久没被访问过的数据,以最近一次访问时间作为参考
  • 2.LFU,最不经常使用,淘汰最近一段时间被访问次数最少的数据,以次数作为参考
  • 3.绝大多数情况使用LRU策略
  • 4.存在大量热点缓存数据时,LFU更好

你可能感兴趣的:(redis,面试,redis,面试)