大家好,我是程序媛雪儿,今天不说晚安,说早上好,哈哈,今天我们唠唠redis数据删除策略。
一、惰性删除
设置key的过期时间,当需要该key,再检查是否过期,如果过期,就删掉,没过期,就返回(只有key过期才会检查)
set name zhangsan 10
get name
优点:不会额外消耗cpu
缺点:大量过期的数据占了内存,未及时处理
二、定期删除
每隔一段时间,就对key进行检查(从一定数量的数据库抽取一定数量的key),并删除其中的过期key
两种模式
slow模式:默认是10hz,每次不超过25ms,可以通过修改redis.conf的hz选项来调整这个次数
fast模式:两次间隔不低于2ms,每次耗时不超过1ms
优点:可以通过限制操作删除的执行时长和频率来控制对cpu和内存的影响
缺点:难确定删除的执行时长和频率
Redis的过期删除策略:惰性删除+定期删除配合使用
三、内存淘汰机制(是上篇讲的)
8种策略,nginx.conf中的配置
maxmemory-policy noeviction #默认策略,不淘汰任何key,内存满了不允许写入新数据
其中,解释一下LRU和LFU算法
LRU(least recently used)最近最少使用,当前时间-最后访问时间,这个值越大越优先淘汰,换句话说就是淘汰最长时间没访问的
LFU (least frequently used ) 最少频率使用,会统计每个key的访问频率,值越小淘汰优先级越高
今天的知识碎片到这里就结束啦~咱们顺便唠唠嗑,我最近每天下班在健身房泡一个小时,跑步机30-40min,拉伸10min,练练背,玩玩哑铃做做力量训练,我觉得真的会很舒服,咱们不管是写代码还是实验室里搞研究,天天坐的时间太久了,能时不时舒展一下,是一件很棒的事情哦,之前雪儿经常肩膀痛,现在已经不痛啦,很推荐各位宝子试一下昂~