Redis中的数据特征
过期的数据真的删除了吗?
过期数据是指曾经有效的数据,并不是立马被删除的。
删除策略
定时删除、惰性删除、定期删除
过期数据时如何存储的
首先需要明白时效性数据的存储结构
删除策略是维护的紫色区域:expires。
数据删除策略的目标
内存占用与cpu占用之间寻找一种平衡,顾此失彼都会造成整体的Redis性能的下降,甚至引发服务器的宕机内存泄露!
定时删除
规定时间,设置一个定时器,当key设置有过期时间,且过期时间到达时,由定时器的任务立即对key的删除操作
不仅在redis存储空间删掉了key,还在expires区域中把field和value都删掉了。
优缺点:
总结:用处理器性能,也就是CPU换内存(存储空间)。也就是拿时间换空间。
更看重内存。
惰性删除
如果已经过期了,就会删除掉了,然后返回不存在!
定期删除
前面两种策略比较极端,要么时间不够要么cpu不够。
0x是过期数据的存储地址,然后后面的数字是过期的时间。
W是可以自己定义的,到配置文件中去设定这个东西。
这个是阶段性的去清理,折中方案。定期是可以理解为轮询的思想来做。
逐出算法
LRU是指 最近使用最少的。 age已经4s没用了。所以是他。
同时需要注意检查易失数据集进行操作的。
如果禁止驱逐数据那么容易oom。
一般选用lru。
在配置文件中进行配置即可。
演示这个操作需要大量的操作来冲击内存。
这个就是hits和miss命中和丢失的策略。
总结