Redis 淘汰策略
Redis服务的内存被占满时,会对内存的数据进行清理。Redis 4.0 之前一共实现了 6 种内存淘汰策略,在 4.0 之后,又增加了 2 种策略。具体的策略如下:
-
不进行数据淘汰
- no-enviction(默认的策略):当内存用完之后,写数据会报错,读不受影响。
-
针对已设置过期时间的数据集中:
- volatile-lru:从已设置过期时间的数据集中,淘汰最近最少使用的数据。
- volatile-ttl:从已设置过期时间的数据集中,淘汰最早会过期的数据。
- volatile-random:从已设置过期时间的数据集中,随机淘汰数据。
- volatile-lfu(Redis 4.0 后新增):从已设置过期时间的数据集中,淘汰使用频率最低的数据。
-
针对所有的数据集:
- allkeys-lru:淘汰最近最少使用的数据。
- allkeys-random:随机淘汰数据。
- allkeys-lfu(Redis 4.0 后新增):淘汰使用频率最低的数据。