Redis 缓存淘汰策略
Redis 缓存淘汰策略
1. redis 缓存淘汰策略分为两类, allkeys 和 volatile:
- allkeys 代表所有 key 参与淘汰
- volatile 表示只有设置过期时间的 key 参与淘汰
2. 具体策略:
其中lru 后缀代表最近最少使用原则, lfu 代表最少使用, random 代表随机
-
volatile-lru -> Evict using approximated LRU, only keys with an expire set.
-
allkeys-lru -> Evict any key using approximated LRU.
-
volatile-lfu -> Evict using approximated LFU, only keys with an expire set.
-
allkeys-lfu -> Evict any key using approximated LFU.
-
volatile-random -> Remove a random key having an expire set.
-
allkeys-random -> Remove a random key, any key.
-
volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
-
noeviction -> Don't evict anything, just return an error on write operations.(默认)
3. 配置
修改 redis 配置文件
# 以 volatile-lru 举例
maxmemory-policy volatile-lru
4. 主从模式
在主从模式下,从库会忽略自己的淘汰策略, 默认同步主库的 key,如需配置需要额外修改
replica-ignore-maxmemory no