Redis缓存淘汰策略
当实际内存超出 maxmemory
时,Redis 提供了几种可选策略 (maxmemory-policy) 来让用户自己决定淘汰哪些key。总结如下:
Redis LRU近似算法
Redis 使用的是一种近似 LRU 算法:
1、key增加最近访问时间戳字段
2、选取一定数量的key(默认5,server.maxmemory_samples进行
配置),比较最近访问时间。按照LRU算法淘汰key。
当 Redis 执行写操作时,发现内存超出 maxmemory,就会执行一次 LRU 淘汰算法。
注意:maxmemory_samples
的值越大,Redis的近似LRU算法就越接近于严格LRU算法(队列结构重排,批量非热点数据缓存垃圾),但是相应消耗也变高,对性能有一定影响,样本值默认为5。