一次redis数据迁移restart 未config set requirepass流程隐藏的小漏洞

场景:一次qa(docker)环境机器重启需要redis也被迫重启(redis 设置过 config set requirepass )。流程:

1:save/bgsave --> "save阻塞备份能提示ok bu ! ?; bgsave:不会提示,须看log结果"

2:stop 

3:start(ps 重点:未再次配置config set requirepass

再次重启服务,提示连接“ Could not get a resource from the pool” ,But shit happens --》redis-cli 可以set get

奈何反应驰化,,,,,,,,,,,,,,,,,,,,,,

也没想到看下debug下polConfig 为什么not get a resource;任性又docker-create-redis  redis6379实例;执行:《config set requirepass alexpwd》 服务可以用。接下里心存有备份的 “ .rdb ” 便copy redis6379 的data下。restart redis6379 (问题接着来了,重点:未再次配置config set requirepass)服务再次出现异常连接信息;

一时百度无果,心灰意懒。逃避之(以后redis不重启了)。两天后的今天周末,心中有事,觉夜无眠。

究其原因才有了:如下图1(一图解万语) ,不解释了,都在图里面。。。

                                                                                                 图一

综其原因:有其二。

  1. 重启之后:未再次配置config set requirepass ,虽然redis-cli 可以set get但是不能通过poolconfig 取,(为什么不能姑且待查更新~) poolconfig init启动不需要-a 但是get a resoure要求restart 必须再次 -auth.
  2.  解决问题必须从问题出处查看(read code By origin )
  3. mysweetheart not happy,,,,,,,,,,,,,,,,,,,

整理下迁移策略:

  1. 停止redis6379 (使用实例)
  2. copy origin 到 redis6379
  3. start redis6379 (重启需config set requirepass 。。。shit happens):详图二
  4. 结果见图三
  5. 仅限(主从,单redis)实例(迁移)不适合集群市cluster迁移更为复杂。。。。

                                                                                        图二 

                                                                   图三

总而言之,言而总之:shit happens 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值