网站首页 > 精选文章 正文
Redis内存不足是否会挂掉
Redis数据存放在内存里面,在生产环境高并发的情况下操作redis,偶尔会遇到 Redis 服务器内存不够的情况,如果继续往Redis存储数据,是否会撑爆?显然是有可能会的,为了防止 Redis 内存撑爆都会做淘汰策略,此时Redis 的内存是如何回收处理的呢?对于带有过期时间的 Key Redis 又是如何处理的呢?
Redis淘汰策略配置
Redis默认情况下,是没有对内存大小做限制的,需要根据业务场景进行设置;
maxmemory 300mb :设置Redis 内存大小的限制,当数据达到限定大小后,会选择配置的策略淘汰数据;
maxmemory-policy volatile-lru: 设置Redis的淘汰策略;
Redis淘汰策略
将Redis用作缓存时,如果内存空间用满,就会自动移除动老的数据。
此时小伙伴会想,这样不合理吧,这样不就把将常用的数据也给淘汰了么?
显然是不会的,为了防止内存撑爆,Redis会设置一个阈值,如果达到服务器这个阈值,就不可以存储,那么此时我们会制定一个方案,要么你再存储就报错,要么就采用过期策略;Redis内存淘汰策略和垃圾回收机制是非常相似的,会淘汰不经常使用的数据;这样也不会影响整个业务逻辑;
Redis六种淘汰策略
noeviction:不回收,当内存使用达到阈值的时候,再新增数据的时候会返回 error (默认淘汰策略);
allkeys-lru:在所有的key中,优先淘汰最近未使用的key(推荐);
volatile-lru:设置了过期时间的key中,优先淘汰最近未使用的key;
allkeys-random:在所有的key中,随机淘汰key(不靠谱);
volatile-random:在设置了过期时间的key中,随机淘汰key(不靠谱);
volatile-ttl:在设置了过期时间的key中,优先淘汰最早会过期的key。
注:最近未使用就是这段时间没有被使用,可能之前用过,会优先淘汰或者存进去就没有使用过的key;
Redis淘汰策略执行过程
- Redis客户端运行命令,添加数据申请内存;
- Redis 会检查内存的使用情况,如果已经超过的最大限制,就是根据配置的内存淘汰策略去淘汰相应的 key,从而保证新数据正常添加;
- 继续执行命令。
- 上一篇: 一文清晰了解-什么是Redis?能干什么?
- 下一篇: 看完这篇文章你就知道Redis是什么了?
猜你喜欢
- 2025-03-19 一直写写写,Redis内存耗尽,会发生什么?
- 2025-03-19 Redis高并发场景下的最佳实践(redis解决高并发的原理)
- 2025-03-19 Redis存取架构及命令详解(redis存储命令)
- 2025-03-19 开源推荐:如何实现的一个高性能 Redis 服务器
- 2025-03-19 Java面试 | 关于Redis 的面试题(有关redis的面试题)
- 2025-03-19 在nodejs中使用Redis缓存和查询数据及Session
- 2025-03-19 看完这篇文章你就知道Redis是什么了?
- 2025-03-19 一文清晰了解-什么是Redis?能干什么?
- 2025-03-19 Redis的缓存穿透、缓存击穿和缓存雪崩
- 2025-03-19 使用Redis,你必须知道的21个注意要点
- 05-22如何基于Docker和Jenkins打造面向初创公司的持续集
- 05-22Flutter无脑入门-从零到第一个APP
- 05-22git 子模块
- 05-22我见过的最糟糕代码
- 05-22掌握这 20 个 Git 命令,成为团队协作高手!
- 05-22gitflow的工作流
- 05-22Git详细使用教程
- 05-22git版本管理总有问题,建议使用git flow
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)