数据过期策略:
惰性删除:
设置该key过期时间后,我们不去管它,当需要该key时,我们在检查其是否过期,如果过期,我们就删掉它,反之返回该key。
这种方式对cpu友好(只在用的时候判断要不要删除不用一直判断),对内存不友好(过期的key一直存在内存中)
定期删除:
每隔一段时间,我们就对一些key进行检查,删除里面过期的key(从一定数量的数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。
定期删除有两种方式:
优点:可以通过限制删除操作执行的时长和频率来减少删除操作对CPU 的影响。另外定期删除,也能有效释放过期键占用的内存。 缺点:难以确定删除操作执行的时长和频率。
Redis实际上是两种策略配合使用的!!!
数据淘汰策略:
-
内存满的时候不能写入(默认)
-
剩余存活时间最小的被淘汰
-
两种随机淘汰:全体key随机淘汰、设置了存活时间的key随机淘汰
-
两种LRU淘汰:全体keyLRU淘汰、设置了存活时间的keyLRU淘汰
-
两种LFU淘汰:全体keyLFU淘汰、设置了存活时间的keyLFU淘汰