0
点赞
收藏
分享

微信扫一扫

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略


Redis中的数据特征

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据

  • 过期的数据真的删除了吗?
  • 过期数据是指曾经有效的数据,并不是立马被删除的。

删除策略

  • 定时删除、惰性删除、定期删除

过期数据时如何存储的

  • 首先需要明白时效性数据的存储结构
  • 删除策略是维护的紫色区域:expires。

数据删除策略的目标

  • 内存占用与cpu占用之间寻找一种平衡,顾此失彼都会造成整体的Redis性能的下降,甚至引发服务器的宕机内存泄露!

定时删除

  • 规定时间,设置一个定时器,当key设置有过期时间,且过期时间到达时,由定时器的任务立即对key的删除操作
  • 不仅在redis存储空间删掉了key,还在expires区域中把field和value都删掉了。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据_02

  • 优缺点:
  • 总结:用处理器性能,也就是CPU换内存(存储空间)。也就是拿时间换空间。
  • 更看重内存。

惰性删除

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据_03

  • 如果已经过期了,就会删除掉了,然后返回不存在!

定期删除

  • 前面两种策略比较极端,要么时间不够要么cpu不够。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据库_04


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据_05

  • 0x是过期数据的存储地址,然后后面的数字是过期的时间。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据_06

  • W是可以自己定义的,到配置文件中去设定这个东西。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据_07


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据_08

  • 这个是阶段性的去清理,折中方案。定期是可以理解为轮询的思想来做。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据_09


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_redis_10

逐出算法

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据_11


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据库_12


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据_13


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_memcached_14


Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_memcached_15

  • LRU是指 最近使用最少的。 age已经4s没用了。所以是他。
  • 同时需要注意检查易失数据集进行操作的。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_redis_16

  • 如果禁止驱逐数据那么容易oom。
  • 一般选用lru。
  • 在配置文件中进行配置即可。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_memcached_17

  • 演示这个操作需要大量的操作来冲击内存。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_redis_18

  • 这个就是hits和miss命中和丢失的策略。

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_数据库_19

总结

Redis学习12:删除策略:过期数据、数据删除策略、逐出策略_过期数据_20




举报

相关推荐

0 条评论