记一次生产事故,Redis内存问题排查与解决



前几天生产的Redis突然挂掉了,之前都没有太注意过Redis那边的使用情况,这次Redis挂掉重启后,发现在那台服务器上,Redis占用了足足30G的运行内存,这才意识到Redis可能出现了一点问题,然后开始了错误排查过程。

错误排查

由于Redis是基于内存的数据库,所以当出现运行内存过大的情况,首先应该考虑检查Redis的数据占用情况。
使用Redis监控工具RedisInsight对内存使用情况进行检查
RedisInsight的基本使用方法见该博文:
Redis 管理工具 RedisInsight

在Memory Analyse模块,填入Redis的RDB文件目录,等待片刻后就能在Overview模块看到相关指标信息。

记一次生产事故,Redis内存问题排查与解决
记一次生产事故,Redis内存问题排查与解决

从图上可以看到内存在Database3的使用达到了28个G,同时由于Redis不支持针对hash的键进行过期设置,在业务逻辑中有定时任务会定期执行redis的数据清理。但是可见定期删除的任务并没有执行,导致了数据一直在往上增,导致了Redis的内存使用越来越大,最后挂掉。

问题解决

重新检查了一下定时任务,确定了是定时任务没有正常执行,修改了业务逻辑后,缓存正常清理,Redis内存使用恢复正常。
正常而言,Redis中的缓存都应该设置对应的过期时间及相应的淘汰策略,像这种问题属于比较低级的日常检查不到位了。

Original: https://www.cnblogs.com/winter0730/p/15404289.html
Author: cos晓风残月
Title: 记一次生产事故,Redis内存问题排查与解决

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576254/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring MVC的生命周期与简单三大组件的简单介绍

    1.说到Spring MVC就会想到它是基于MVC设计模式的思想来设计的: 那么MVC设计模式是什么呢? 下面来介绍一下 MVC 设计模式 MVC是模型(model)-视图(vie…

    数据库 2023年6月6日
    032
  • JavaWeb连接MySQL数据库

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年9月4日
    0126
  • java连接Access数据库

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年9月1日
    0179
  • python-django框架中使用FastDFS分布式文件系统

    一、安装FastDFS 1-1:执行docker命令安装 bash;gutter:true; 安装tracker docker run -dti –network=host –…

    数据库 2023年6月6日
    026
  • Pandas简单操作(学习总结)

    stu = pd.read_excel(‘./stu_data.xlsx’) stu[‘新体重’] = pd.cut(stu.体重,bins=[40,50,60,70,80,90]…

    数据库 2023年6月16日
    026
  • Redis锁相关

    Redis锁相关 君不见,高堂明镜悲白发,朝如青丝暮成雪。 背景:面试的时候被问到有哪些锁,很快脱口而出Volatile、Synchronized和ReentrantLock,也能…

    数据库 2023年6月14日
    021
  • Golang实现set

    Golang语言本身未实现set,但是实现了map golang的map是一种无序的键值对的集合,其中键是唯一的 而set是键的不重复的集合,因此可以用map来实现set 由于ma…

    数据库 2023年6月14日
    021
  • MySQL Operator 02 | 脚手架选型 & 工程创建

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年9月4日
    0128
  • MySQL Server可执行注释

    MySQL Server当前支持如下3种注释风格: 以’# ‘开头的单行注释 以’– ‘开头的单行注释 C语言风格的单行…

    数据库 2023年5月24日
    031
  • MyBatis(三)-动态SQL

    1、if 注意:test里面使用的参数,可以是mybatis的默认参数,也可以是实体属性名,但是不能是没有指定别名的参数名(尤其是单个参数,也必须起别名,否则异常); 单独使用if…

    数据库 2023年6月16日
    028
  • 21浙比武

    可以将获得的windows镜像先挂载获取SAM和SYSTEM注册表文件,然后使用mimikatz 提取windows的密码ntml哈希值 <span class=”ne-te…

    数据库 2023年6月11日
    023
  • 多商户商城系统功能拆解24讲-平台端分销会员

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年11月8日
    0113
  • 2_jQuery

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年10月31日
    0191
  • MySQLB+树

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年9月4日
    0111
  • Django点击图片缩放

    参考信息 用 zoom.js 给博客园中博文的图片添加单击时弹出放大效果:https://www.cnblogs.com/mingc/p/7446492.html 使用 1. 下载…

    数据库 2023年6月9日
    016
  • mysql 事务 隔离性 锁

    注入产生的原理: 数据库设置为GBK编码: 宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而…

    数据库 2022年9月4日
    0115
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球