过期删除策略
redis采用惰性删除+定期删除。
惰性删除:访问key时发现已经过期就进行删除。
定期删除:每个固定的时间,选取一定数量的key进行检查,删除其中的过期的key(定期时间和选取的数量都是可以设置的)。如果过期率超过25%会重新进行删除,为了防止循环过度,还可以设置循环时间。
内存淘汰策略
内存淘汰策略处理的是redis运行内存超过设置的最大内存时,需要删除符合条件的key。
内存淘汰策略可以分为不进行数据淘汰和进行数据淘汰。
- 不进行数据淘汰:redis运行内存超过设置的最大内存时,不淘汰任何数据,有新数据需要写入时会禁止写入。
- 进行数据淘汰:又可以分为在设置了过期时间内的数据进行淘汰和在所有数据中进行淘汰。
淘汰策略有:随机淘汰,lru最近最少使用,lfu最近最不常用