Redis 内存淘汰策略有哪些?
Redis提供了一些策略,以便在届满最大内存限制时进行内存淘汰:
- noeviction:当内存不足以容纳更多数据时,新的写入操作会报错。这是默认策略。
-
allkeys-lru:在内存不足时让位于新值内容的,是最近最少使用的键(LRU:Least Recently Used)。
-
volatile-lru:在设置了过期时间的键中,淘汰最近最少使用的键,新的写入操作会报错。
-
allkeys-random:在内存不足时随机删除某个键的值,为新值让出空间。
-
volatile-random:在设置了过期时间的键中,随机淘汰一些键。
-
volatile-ttl:在设置了过期时间的键中,有更早过期时间的键优先被淘汰。
选择哪种策略取决于你的特定应用。如果你的程序可以接受偶发的性能下降,allkeys-lru可能是一个好选择。如果你知道一些键是可以安全删除的,你可以为它们设置过期时间,然后使用volatile-lru。如果数据的重要性不等,你可以为重要的数据设置过期时间,然后使用volatile-ttl策略。