1. redis的数据淘汰策略
Redis 提供了多种数据淘汰策略,主要是为了在内存资源不足时,决定如何移除旧数据以腾出新空间。
-
no-enviction
: 当内存不足以容纳新写入数据时,新写入会报错。 -
allkeys-lru
: 当内存不足时,移除最近最少使用的键。 -
allkeys-random
: 当内存不足时,随机移除键。 -
volatile-lru
: 只对设置了过期时间的键进行最近最少使用算法。 -
volatile-random
: 随机移除设置了过期时间的键。 -
volatile-ttl
: 移除即将过期的键。
可以通过配置文件或者 CONFIG SET
命令动态设置淘汰策略。
面试版回答:
2.redis的过期策略
惰性删除+定期删除结合使用
1. 惰性删除 :过期数据查询时才删除
2. 定期删除:
slow模式 :默认10HZ即每秒10次,每次不超过25ms,可改配置
fast模式:执行频率不固定,但两次执行间隔不低于2ms,每次耗时不超过1m