Redis : 记一次flushdb操作

事件背景:

1、昨天下午出现了redis的内存使用率过高告警,emmm 发现 16G的机器,用了10G,最大限制12G,还有点空,直接调到了14G,使用命令:
CONFIG GET maxmemory #查询最大内存限制
CONFIG SET maxmemory “15032385536” #设置最大内存限制为14G
然后舒坦了,告警消失了。
2、晚上10点半准备洗洗休息完成一天的工作,然鹅 ,坑的事情来了,又告警了,这个redis,坑货啊,上去一看,已经12G多了,这个情况如何处理,通知领导,并且查原因,发现是别的应用批量导致问题,咨询开发后可以清理这些key ,so 有了这次生产flashdb的操作。

操作过程:

1、登录redis主节点,info 看下redis是不是主节点,确认下key数量和内存
2、执行:
select 0 #进入0号库
flushdb #清理当前数据库所有数据, 还有: flushall 清理所有数据库数据
3、等待: 如下图, 发起清理的时候大约13G内存,竟然跑了142秒,这个期间redis不可读写,请求直接超时,后续非紧急情况坚决不能进行这样的操作。
flushdb
4、执行完成再来下info ,这个时候神奇的事情发生了,节点变成了down 状态,并且触发了主从切换,新的主节点上数据依旧存在 ,发现这个情况心想要凉了,这问题怎么搞。
5、 先等了下,查找原因,发现一段时间后这个刚flushdb的主节点,数据又被恢复了,flushdb失败。
6、狠下心,再在主节点执行了一次,再次出现切换, 我跑到每个主节点都进行了flushdb操作。 总算全部清理完毕。

经验教训:

大数据量的redis不适合进行flunshdb操作;
需要替代方案;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值