在 Redis 4.0 之前和之后,Redis 的内存淘汰策略没有发生显著的变化,但在 4.0 版本之后引入了一种新的内存淘汰策略,即 MEMKIND_LFU
。
Redis 4.0 之前的内存淘汰策略:
1. volatile-lru
和 allkeys-lru
:
volatile-lru
使用 Least Recently Used(LRU)算法淘汰带有过期时间的 key。allkeys-lru
使用 LRU 算法淘汰所有 key。
2. volatile-ttl
:
volatile-ttl
根据 Time To Live(TTL)淘汰带有过期时间的 key。
3. volatile-random
和 allkeys-random
:
volatile-random
随机淘汰带有过期时间的 key。allkeys-random
随机淘汰所有 key。
4. noeviction
:
noeviction
表示当内存不足以执行写入操作时,拒绝写入而不进行淘汰。