本文主要讲解“如何处理Redis中缓存过期和缓存占用内存的问题”。本文的解释简单明了,易学易懂。接下来请跟随边肖的思路学习学习“如何处理Redis中的缓存过期和缓存占用内存”!
00-1010设置了expire的密钥缓存已经过期,但是由于redis所基于的两种删除策略,服务器的内存仍然会被占用。
Redis有两个策略:
(活动)计划删除
定期检查过期的密钥,如果过期,清理并删除它。(每秒检查的次数在redis.conf中配置为hz)
(被动)惰性缺失
当客户端请求一个过期的密钥时,redis会检查密钥是否过期,如果过期就删除,然后返回一个nil。这种策略对cpu友好,不会造成太大的损失,但是会占用更多的内存。
因此,虽然密钥已经过期,但只要不被redis清理,内存还是会被占用。
00-1010内存满了,可以用硬盘保存,但是没有意义,因为硬盘没有内存快,会影响redis的性能。
因此,当内存已满时,redis提供了一种缓存消除机制:MEMORY MANAGEMENT。
Max:当最大内存利用率达到时,开始清理缓存。
* noeviction:旧缓存永远不会过期,新缓存无法设置,返回错误。
*allkeys-lru:清除使用最少的旧缓存,然后保存新缓存(推荐)
*allkeys-random:在所有缓存中随机删除(不推荐)
*volatile-lru:在设置了到期时间的缓存中,清除使用最少的旧缓存,然后保存新缓存。
*volatile-random:随机删除那些设置了过期时间的缓存中的缓存。
*volatile-ttl:删除那些设置了过期时间的缓存中即将过期的缓存。感谢阅读。以上就是“如何处理Redis中缓存过期和缓存占用内存”的内容。学习完这篇文章,相信大家对如何处理这个问题有了更深的理解,具体用法还需要实践来验证。在这里,边肖将为您推送更多关于知识点的文章,敬请关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/125715.html