redis内存淘汰策略和过期删除策略
-------redis内存淘汰策略-------
no-evition -> 从不过期,内存不够时,在进行写入操作时,只返回错误
allkeys-lru -> 从所有key中,根据lru算法,回收最近最少使用的key
volatile-lru -> 从设置过期时间的key集合中,根据lru算法(最近最少用到)回收key
volatile-lfu -> 从设置过期时间的key集合中,使用近似LFU算法,淘汰最不经常使用的key
allkeys-lfu -> 从所有key中,使用近似LFU算法,淘汰最不经常使用的key
volatile-random -> 从设置过期时间的key集合中,随机回收key
allkeys-random -> 从所有key中,随机回收key
volatile-ttl -> 从设置过期时间的集合中,删除最接近过期的key
分为四类: LRU,LFU,ttl,random
-------redis过期删除策略-------
1,定时删除:在设置键的过期时间的同时,创建一个timer,让定时器在键的过期时间到达时,立即执行对键的删除操作。(主动删除)
2,定期删除:每隔一段时间就对数据库进行一次检查,删除里面的过期键。(主动删除)
3,惰性删除:放任过期键不管,但是每次从键空间中获取键时,都检查取到的键是否过期,如果过期就删除,如果没过期就返回该键。(被动删除)