Redis对于过期键有三种清除策略:
持久化策略(内存到磁盘上):RDB(全部选中的数据进行全量备份)、AOF日志记录修改指令(增量备份针对上一次选中的数据)两种方案
内存淘汰策略:noeviction–默认策略,不删除数据 allkeys-lru–所有key中,删除最近最少使用的数据 volatile-lru–设置过期时间的所有key中,选取最近最少使用的数据删除 volatile-random–在所有key中,随机删除设置过期时间key的数据 volatile-ttl–设置过期时间key中,删除存活时间最短的数据
过期(定期)策略:定期删除(过期key放入独立字典中,定期删除字典数据)、定期删除策略(定期删除)、惰性删除(过期了,删除,不返回任何数据)
==============================================
被动删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
主动删除:由于惰性删除策略无法保证冷数据被及时删掉,所以Redis会定期主动淘汰一批已过期的key
当前已用内存超过maxmemory限定时,触发主动清理策略
被动删除
只有key被操作时(如GET),REDIS才会被动检查该key是否过期,如果过期则删除之并且返回NIL。
1、这种删除策略对CPU是友好的&