贵阳网站建设专家,枣庄公司网站建设,wordpress开源博客系统最新版,卖域名的网站Redis 内存回收
Redis之所以性能很强#xff0c;最主要的原因是基于内存存储#xff0c;然而单节点的Redis其内存大小不宜过大#xff0c;会影响持久化或主从同步性能
可以通过修改配置文件来设置Redis的最大内存
maxmemory bytes当内存达到上限时#xff0c;就…Redis 内存回收
Redis之所以性能很强最主要的原因是基于内存存储然而单节点的Redis其内存大小不宜过大会影响持久化或主从同步性能
可以通过修改配置文件来设置Redis的最大内存
maxmemory bytes当内存达到上限时就无法存储更多的数据
内存过期策略
Redis的TTL记录方式
RedisDB种通过一个Dict记录每一个key的TTL时间
过期key的删除策略
惰性清理每次查找key是判断是否过期如果过期则删除定期清理定期抽样部分key判断是否过期如果过期则删除
定期清理的两种方式
SLOW模式执行频率默认为10每次不超过25msFAST模式执行频率不固定单两次间隔不低于2ms每次耗时不超过1ms
内存淘汰策略
内存淘汰机制就是当Redis内存达到设定的阈值时Redis主动挑选部分key删除已释放更多内存的流程
8个策略
noeviction不淘汰任何内存但是内存满的时候不允许写入新的数据。【默认选项】volatile-ttl对设置TTL的key比较剩余的TTL剩余的TTL越小越先被淘汰allkeys-random对全体key随即进行淘汰。也就是直接从db-dict种随机挑选volatile-random对设置了TTL的key随机进行淘汰也就是db-dict种随机挑选allkeys-lru对全体key基于LRU算法进行淘汰volatile-lru对设置过期时间的key基于LRU算法进行淘汰allkeys-lfu对全体key基于LFU算法进行淘汰volatile-lfu对设置TTL的key基于LFU算法进行淘汰
设置方法
maxmemory-policy noeviction默认为noeviction LRULeast Recently Used最少最近使用的用当前时间减去最后一次访问时间这个值越大淘汰的优先级就越高
LFULeast Frequently Used最少频率使用的。会统计每个key的访问效率值越小淘汰优先级越高 LFU的访问次数之所以叫做逻辑访问此时是因为并不是每次key被访问都可以技术而是通过运算
生成0~1之间的随机数R计算1/(旧次数* lfu_factor 1) ,记作Plfu_log_factor默认为10如果RP,则计时器1最大不超过255访问次数都会随着时间衰减距离上一次访问时间每隔lfu_decay_time(默认为1),计数器-1