redis内存淘汰策略
2024-03-12 11:01 Spiderman25 阅读(204) 评论(0) 收藏 举报
Redis提供了八种内存淘汰策略,用于在内存空间不足时自动清除部分已有的数据,以腾出空间容纳新数据。这些策略可以分为两大类:
基于过期时间的淘汰策略:
volatile-random:随机从设置了过期时间的键中删除。
volatile-ttl:根据键的剩余过期时间进行删除,越早过期的键越先被删除。
volatile-lru:使用LRU(最近最少使用)算法从设置了过期时间的键中删除最久未使用的键。
volatile-lfu:使用LFU(最少使用)算法从设置了过期时间的键中删除最不常使用的键。
基于数据范围的淘汰策略:
allkeys-lru:从所有键中删除最久未使用的键。
allkeys-random:随机从所有键中删除。
allkeys-lfu:从所有键中删除最不常使用的键。
此外,还有一种特殊的策略,即当内存使用超过设置的最大内存时,不淘汰任何数据,而是直接报错,这是Redis的默认行为。在Redis 3.0之前,默认的淘汰策略是volatile-lru;而在Redis 3.0及之后版本,默认策略变为noeviction。
浙公网安备 33010602011771号