数据删除与淘汰策略
1、过期数据概念与存储结构
- 内存中数据的状态
- 通过TTL指令获取
- XX:具有时效性的数据
- -1:永久有效的数据
- -2:已经过期的数据或被删除的数据或未定义的数据
注:过期的数据不一定被删除了
注:数据删除策略的目标并不是真正的删除数据,而是在内存占用和cup占用之间寻找一种平衡。
2、定时删除与惰性删除
优点:节约内存
缺点:cpu压力大
优点:节约cpu性能
缺点:内存压力大
3、定期删除
4、淘汰策略
新数据进入redis时,内存空间不足
-
怎么判断内存空间剩余大小呢? redis在执行每个命令前,会调用freeMemoryIfNeeded()检测内存空间是否充足。 -
逐出算法 及清理数据的策略。该过程并不是100%能清理出足够可用的内存空间,如果不成功,则反复执行。如果全部数据都尝试完毕,则会返回错误信息。 -
那么,如何确定该删除哪些数据呢? 通过配置:maxmemory-policy XXX XXX可选:
- volatile-lru:淘汰最久没有访问的数据
- volatile-lfu:淘汰最少访问的数据
- volatile-ttl:淘汰将要过期的数据
- volatile-random:任意选择淘汰
注:这是expires里面的淘汰策略
检索全库数据:
放弃数据驱逐(淘汰)配置:no-enviction
|