本次由于安全漏洞原因,需要降redis3升级为redis6,涉及到数据迁移及校验等,用阿里redis-shake迁移工具迁移,并用阿里RedisFullCheck工具进行数据比对

一、新redis安装启动

开启老版本redis的哨兵模式,编辑完sentinel.conf后执行哨兵模式启动,主节点均要配置哨兵,再分别重启每个老版本redis节点

./redis-cli -h host -p port -a password shutdown

准备redis-6.2.4.tar.gz包,放到需要安装部署的目录下,执行tar -zxvf redis-6.2.4.tar.gz 降tar包解压到当前文件夹

进入redis-6.2.4,执行如下命令安装gcc新版本,否则安装可能会报错

yum install gcc

再执行

make && make PREFIX=/data/program/redis6 install

安装redis6并指定redis6的目录

执行完上述命令后,继续执行

make test

确认安装是否有问题

如果出现错误,则执行

make distclean

清理一下之前的安装遗留,再重新安装

以上步骤完成后,配置redis并启动redis

配置redis.conf文件,执行

redis-server ../conf/7000/redis.conf
redis-server ../conf/7001/redis.conf
redis-server ../conf/7002/redis.conf
redis-server ../conf/7003/redis.conf
redis-server ../conf/7004/redis.conf
redis-server ../conf/7005/redis.conf

 启动redis,并设置主从节点

redis-cli -a password123 --cluster create 127.0.0.1:7000 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1

 自此新redis配置并启动完成,可以去node.conf下看主从节点信息

二、数据迁移

下载redis-shake-v2.0.3.tar.gz并放入需要安装的目录下,解压此文件,进入解压后目录,配置redis-shake.conf

一般只需要改如下参数即可

#source.type是源redis的类型,standalone为主从,cluster为集群,默认standalone
source.type = cluster #source.address是源redis地址,一般只需要填主节点
source.address=127.0.0.1:7001;127.0.0.1:7002;127.0.0.1:7003 #source.password_raw 是源redis密码
source.password_raw = 123456 #目标redis的配置同理
target.type = cluster
target.address = 192.168.0.1:7001;192.168.0.1:7002;192.168.0.1:7003
target.password_raw= 123456

配置好执行

./start.sh ./redis-shake.conf sync

执行之后会报错,缺少hypervisor

./start.sh: line 20: ./hypervisor: No such file or directory

去github官网下载这个文件,再手工进行编译即可。

wget https://github.com/alibaba/RedisShake/blob/develop/scripts/hypervisor.c

gcc -Wall -O3 hypervisor.c -o hypervisor

三、服务重启验证

将服务停止后,停止redis-shake迁移服务,并用RedisFullCheck校验redis迁移数据是否完整

改好配置文件后,重启服务,验证业务是否正常。

redis集群升级,数据迁移及校验的更多相关文章

  1. 在 Istio 中实现 Redis 集群的数据分片、读写分离和流量镜像

    Redis 是一个高性能的 key-value 存储系统,被广泛用于微服务架构中.如果我们想要使用 Redis 集群模式提供的高级特性,则需要对客户端代码进行改动,这带来了应用升级和维护的一些困难.利 ...

  2. 用redis-dump工具对redis集群所有数据进行导出导入

    安装redis-dump redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby. ...

  3. redis 3.0 集群__数据迁移和伸缩容

    添加节点 1,启动2个新的redis-sever, 参照 ( redis 3.0 集群____安装 ),端口号为 7007 和 7008 2,使用命令 redis-trib.rb add-node 命 ...

  4. (转)hadoop 集群间数据迁移

    hadoop集群之间有时候需要将数据进行迁移,如将一些保存的过期文档放置在一个小集群中进行保存. 使用的是社区提供的功能,distcp.用法非常简单: hadoop distcp hdfs://nn1 ...

  5. KingbbaseES V8R6集群维护案例之---集群之间数据迁移

    案例说明: 生产环境是集群环境,测试环境是集群,现需要将生产环境的数据迁移到测试集群中运行,本文档详细介绍了从集群环境迁移数据的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingbase ...

  6. Redis主从,集群部署及迁移

    工作中有时会遇到需要把原Redis集群下线,迁移到另一个新的Redis集群的需求(如机房迁移,Redis上云等原因).此时原Redis中的数据需要如何操作才可顺利迁移到一个新的Redis集群呢? 本节 ...

  7. Redis单节点数据同步到Redis集群

    一:Redis集群环境准备 1:需要先安装好Redis集群环境并配置好集群 192.168.0.113 7001-7003 192.168.0.162 7004-7006 2:检查redis集群 [r ...

  8. filebeat收集日志传输到Redis集群,logstash从Redis集群中拉取数据

    前提:已配置好Redis集群,并设置的有统一的访问密码 架构是filebeat-->redis集群-->logstash->elasticsearch,需要修改filebeat的输出 ...

  9. redis集群学习

    转载: http://arganzheng.life/redis-cluster.html Redis3.0版本加入了cluster功能,解决了Redis单点无法横向扩展的问题. 分布式系统要解决的不 ...

随机推荐

  1. GeoWave实践2:使用命令行将本地矢量数据注入hbase并发布至GeoServer

    目录 步骤 补充 步骤 在GeoWave所在的节点打开两个会话窗口. 会话1 //运行GeoServer,默认端口8080 geowave gs run 会话2 //为GeoWave创建数据库Test ...

  2. Python 使用timeit模块计算时间复杂度时系统报“invalid syntax”错误

    最近在看算法相关的文档 在时间复杂度环节 遇到一个实例: 导入timeit模块后,通过Timer定时器计算两种不同处理方法的时间复杂度 错误代码及报错如下图所示: 仔细查阅 发现from__main_ ...

  3. mybatis学习笔记(四)

    resultType 语句返回值类型的完整类名或别名 resultType 返回的是一个map集合,key是列名,value是对应的值 使用resultMap实现联表查询 resultMap 查询的结 ...

  4. spring cloud --- 使用 actuator 热更新【刷新】单机配置文件

    1.前言 分布式微服务想要热更新配置文件,还需要 消息中间件 配合使用 ,一般使用 rabbitMQ 或 Kafka ,这里不解释 . 这篇随笔 只讲解 底层的 单机热更新配置文件 2.环境 spri ...

  5. spring cloud --- Ribbon 客户端负载均衡 + RestTemplate + Hystrix 熔断器 [服务保护] ---心得

    spring boot      1.5.9.RELEASE spring cloud    Dalston.SR1 1.前言 当超大并发量并发访问一个服务接口时,服务器会崩溃 ,不仅导致这个接口无法 ...

  6. Spark-local本地环境搭建

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815385772254822919/ 承接上一个文档<Spark源码编译> 解压spark编译好的压缩 ...

  7. Mybatis实现分包定义数据库

    Mybatis实现分包定义数据库 背景 业务需求中需要连接两个数据库处理数据,需要用动态数据源.通过了解mybatis的框架,计划 使用分包的方式进行数据源的区分. 原理 前提: 我们使用mybati ...

  8. deepin20搜狗输入法使用

    放大打字框 打出中文语句符号

  9. Servlet虚拟路径匹配规则

    当 Servlet 容器接收到请求后,容器会将请求的 URL 减去当前应用的上下文路径,使用剩余的字符串作为映射 URL 与 Servelt 虚拟路径进行匹配,匹配成功后将请求交给相应的 Servle ...

  10. golang中浮点型底层存储原理和decimal使用方法

    var price float32 = 39.29 float64和float32类似,只是用于表示各部分的位数不同而已,其中:sign=1位,exponent=11位,fraction=52位,也就 ...