上车上车,快速搞懂Redis 过期策略和内存淘汰策略

66 阅读2分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情

在这里插入图片描述

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈\

上🚕,上🚕 快速搞懂Redis 过期策略和内存淘汰策略

🎈Redis 过期策略

  1. 定时删除 对于redis中的键值对,对设置过期时间的的都创建一个定时器,当到达一定时间,删除对应的key,虽然这样redis能够删除多余的数据,但是会耗费大量的cpu时间。
  2. 定期删除:这个和定时删除是不同的,定期删除是隔一段时间去查看redis中的一个数据库中设置过期的key是否过期,过期的话,就可以删除,当删除的数量占有遍历的总量,则再次选取一部分数据进行过期检测,直到删除的key占有扫描额数据比例小于一定比例的时候停止。
  3. 惰性删除:这个指的是我们不主动删除,而是被动的删除,因为惰性删除指的是,在我们获取key的值的时候,查看是否过期,过期的话直接删除。

默认是使用定期删除和惰性删除结合。

🎈Redis内存淘汰策略

对于淘汰策略有以下八种方式;
在设置过期时间的key上
volatile-lru:在设置了过期时间的key上,找最近最少使用的key删除
volatile-lfu:在设置了过期时间的key上,找最少使用频率的key删除
volatile-ttl:在设置了过期时间的key上,找块要过期的key删除
volatile-random:在设置了过期时间的key上,随机选取key删除
在所有key上
allkeys-lru: 当内存不足的时候,在所有的key上,找最近最少使用的key删除
allkeys-lfu: 当内存不足的时候,在所有的key上,找最少频率使用的key删除
allkeys-random: 当内存不足的时候,在所有的key上,随机选取key删除
noeviction: 当内存不足的时候,不删除已有的key的,添加的时候直接报错。\

🍚总结

以上是关于两个策略的总结,希望有所帮助。