呼和浩特做网站的公司中国做铁塔的公司网站
Redis 是一个使用键值对存储数据的内存中数据结构存储系统,它支持多种类型的数据结构,如字符串(strings),列表(lists),集合(sets),有序集合(sorted sets)以及散列表(hashes)。当内存不足以容纳所有数据时,Redis 可以配置不同的淘汰策略来决定哪些数据应该被移除。
1. 无淘汰策略 (noeviction)
- 策略说明: 当内存使用达到配置的 
maxmemory限制时,所有引起内存增加的命令都会报错。 
2. 全部随机淘汰 (allkeys-random)
- 策略说明: 当达到内存限制时,随机移除任意键。
 
3. 最近最少使用淘汰 (allkeys-lru)
- 策略说明: 当达到内存限制时,移除最近最少使用的键。
 
4. 最近最少使用淘汰(基于样本)(volatile-lru)
- 策略说明: 从已设置过期时间的键中选择最近最少使用的键进行淘汰。
 
5. 随机淘汰(仅限设置了过期时间的键)(volatile-random)
- 策略说明: 从已设置过期时间的键中随机选择键进行淘汰。
 
6. 最少使用淘汰(仅限设置了过期时间的键)(volatile-ttl)
- 策略说明: 从已设置过期时间的键中选择将要过期的键进行淘汰。
 
7. 最近最少使用淘汰(基于样本,仅限设置了过期时间的键)(volatile-lfu)
- 策略说明: 从已设置过期时间的键中选择使用频率最低的键进行淘汰。
 
8. 全部最少使用淘汰 (allkeys-lfu)
- 策略说明: 当达到内存限制时,移除使用频率最低的键。
 
9. 无淘汰策略(仅限设置了过期时间的键)(volatile-lru)
- 策略说明: 如果内存不足以容纳所有数据,并且没有键设置了过期时间,Redis将不执行任何淘汰。
 
配置淘汰策略
- 配置方法: 可以通过在 redis.conf 配置文件中设置 
maxmemory-policy选项来配置淘汰策略,或者通过CONFIG SET maxmemory-policy命令动态设置。 
注意
- 内存限制: 淘汰策略通常与 
maxmemory配置项一起使用,该配置项用于设置 Redis 最大内存使用量。 - 持久化: 淘汰策略不影响持久化。即使数据从内存中被淘汰,它们仍然可能被写入磁盘,如果配置了 RDB 或 AOF 持久化的话。
 - 性能: 选择不同的淘汰策略可能会影响 Redis 的性能,因为某些策略(如 LRU 和 LFU)需要记录额外的信息来确定哪些键应该被淘汰。
 
