分布式集群redis数据还原

        在发上一个线上版本之前,由于开发的同学把流程性的东西抛到一边,只想着省事,很多到测试这边的版本都没有打tag,也没有给转测试的脚本文件,为了这次版本的顺利发布,要做一次线上环境的模拟发布流程。所以需要把生产上的redis数据导到测试的redis上面来。

        我们的生产redis用的是阿里云的集群模式,在这里要说明一下,阿里云上面的redis的集群备份显示让我有点谜糊,因为他上面保存的显示的都是DB0开头的文件,当时我还以为只是redis的db0的数据,因为我们用的是db10,所以当时提了工单到阿里云,就问他们怎么只有db0数据,没有db10数据,等了四五个小时,阿里云那边才给回复说db0代表集群中的第一个数据库,不是代表的DB0。好吧,因为是集群模式,下载的下来的redis备份文件是两个rdb文件,但是由于测试环境只是单机模式,那这两个rdb文件要如何还原到单机的redis上面来呢?

        找了好久,终于找到一个方法,那就是把手动把rdb文件合并成一个后,再还原到redis中去,合并方式如下:
cat 1.rdb > dump.rdb
cat 2.rdb >> dump.rdb
如果超过两个,后面的可以依次通过cat x.rdb >> dump.rdb往同一个文件后面合并就行了。
合并后把dump.rdb的文件放到redis的data目录下,重启redis即可生效。

后面测试了一下数据,redis的相关数据是完整的。
生产上mysql相关数据结构也还原到测试环境上,然后进行了预发布,预发布成功后,发现还是有一些脚本少了,更新脚本后,业务正常。
        这一次经历有以下几点可以借鉴:
1、关于流程,一定要规范化,否则很容易出现类似的问题。尽管我们现在的技术团队这一块做得不是很好,但是本人一直在驱动着组内的成员,不管是开发、还是测试或者是运维。只有规范了,这种问题相对来讲会少很多,但也不能完全保证,因为代码和脚本的提交是由开发人员提交,这跟个人的经验以及工作态度和责任心有很大的关系。
2、关于手动合并rdb问题,开始时想了很久一直没想明白要如何还原多个rdb,这个可以算是一个比较好的经验积累。
3、关于预部署,在流程不规范的情况下,这种方式有助于提高发布时不会出现问题的机率。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,141评论 2 27
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,280评论 1 51
  • 1 Redis介绍1.1 什么是NoSql为了解决高并发、高可扩展、高可用、大数据存储问题而产生的数据库解决方...
    克鲁德李阅读 5,659评论 0 36
  • Nosql概述 在介绍Redis之前,首先先要介绍Nosql的概念。 互联网架构发展 在90年代的时候,计算机访问...
    COKIDCC阅读 743评论 0 1
  • 分布式缓存技术PK:选择Redis还是Memcached? 经平台同意授权转载 作者:田京昆(腾讯后台研发工程师)...
    meng_philip123阅读 69,024评论 7 60

友情链接更多精彩内容