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