redis删除策略
1、定时删除,set(k1,v1,ex,10),时间到了直接删除,对CPU不友好,用处理器性能换存储空间
2、惰性删除,
a、数据到达过期时间不做处理,等下次访问该数据时
如果未过期,返回数据
如果已过期,删除,返回不存在
缺点,对内存不友好,存储空间换
3、定期删除策略(折衷方案),没隔一段时间执行一次删除过期键操作,并通过限制删除操作执行的时长和频率来减少删除操作对CPU时间的影响
周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度
特点1:CPU性能占用设置有峰值,检测频度可自定义设置
特点2:内存压力不是很大,长期占用内存的冷数据会被持续清理
总结L:周期性抽查存储空间
LRU(least Recently Used) 最近最少使用
LFU(least Frequently Used) 最近最小频率使用
# volatile-lru -> 对所有设置了过期时间的key使用LRU算法删除
# allkeys-lru -> 对所有key使用LRU算法删除
# volatile-lfu -> 对所有设置了过期时间的key使用LFU算法删除
# allkeys-lfu -> 对所有key使用LFU算法删
# volatile-random -> 对所有设置了过期时间的key随机删除
# allkeys-random -> 对所有key使用随机删除
# volatile-ttl -> 删除马上要过期的key
# noeviction -> 不删除任何key