Redis中缓存过期、内存被缓存占用要如何处理

103次阅读
没有评论

共计 916 个字符,预计需要花费 3 分钟才能阅读完成。

这篇文章主要讲解了“Redis 中缓存过期、内存被缓存占用要如何处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Redis 中缓存过期、内存被缓存占用要如何处理”吧!

已过期的 key 如何处理?

设置了 expire 的 key 缓存过期了,但是服务器的内存还是会被占用,这是因为 redis 所基于的两种删除策略
redis 有两种策略:

(主动)定时删除

定时随机的检查过期的 key,如果过期则清理删除。(每秒检查次数在 redis.conf 中的 hz 配置)

(被动)惰性删除

当客户端请求一个已经过期的 key 的时候,那么 redis 会检查这个 key 是否过期,如果过期了,则删除,然后返回一个 nil。这种策略对 cpu 比较友好,不会有太多的损耗,但是内存占用会比较高。

所以,虽然 key 过期了,但是只要没有被 redis 清理,那么其实内存还是会被占用着的。

那么如果内存被 Redis 缓存占用慢了咋办?

内存占满了,可以使用硬盘,来保存,但是没意义,因为硬盘没有内存快,会影响 redis 性能。
所以,当内存占用满了以后,redis 提供了一套缓存淘汰机制:MEMORY MANAGEMENT

maxmemory:当内存已使用率到达,则开始清理缓存

* noeviction:旧缓存永不过期,新缓存设置不了,返回错误
* allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)* allkeys-random:在所有的缓存中随机删除(不推荐)* volatile-lru:在那些设置了 expire 过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
* volatile-random:在那些设置了 expire 过期时间的缓存中,随机删除缓存
* volatile-ttl:在那些设置了 expire 过期时间的缓存中,删除即将过期的 `

感谢各位的阅读,以上就是“Redis 中缓存过期、内存被缓存占用要如何处理”的内容了,经过本文的学习后,相信大家对 Redis 中缓存过期、内存被缓存占用要如何处理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计916字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)