Redis内存策略

Redis基于内存存储,但单节点的Redis内存大小不宜过大,会影响持久化和主从同步的性能
# 配置文件中指定
maxmemory 1gb

为了避免存储的数据超过最大内存

过期策略

# 存数据的时候设置过期时间
# 过期的时候并不会立即删除,采用了惰性删除和周期删除
# 惰性删除:每次访问key的时候,判断是否过期,然后删除
# 周期删除:定期抽样部分key,判断是否过期,然后删除,随着时间的推移,数据库中的key都会被检查一遍
# 周期删除的两种模式:
# SLOW模式:执行频率默认为每秒执行10次,即每次100ms,其中执行清理耗时不超过25%,即25ms
# FAST模式

Redis内存策略_第1张图片

内存淘汰策略

当Redis的内存使用达到设置的最大阈值时,Redis主动挑选部分key删除以释放更多内存

任何命令执行之前会检查内存是否达到上限
配置文件中指定策略:maxmemory-policy
8种淘汰策略:
noeviction:不淘汰任何key,内存满时不允许写入新数据(默认策略)
volatile-ttl:对设置了TTL的key,比较剩余的TTL的值,越小越先淘汰
# 随机进行淘汰
allkeys-random:对所有key
volatile-random:对设置了TTL的key
# 基于LRU算法进行淘汰
allkeys-lru:对所有key
volatile-lru:对设置了TTL的key
# 基于LFU算法进行淘汰
allkeys-lfu:对所有key
volatile-lfu:对设置了TTL的key

LRU:最近一次使用的时间距现在越远
LFU:访问频率

Redis内存策略_第2张图片
Redis内存策略_第3张图片

你可能感兴趣的:(Redis,redis)