一、redis双活 1、集群搭建 (一主两从) Redis-Sentinel是redis官方推荐的高可用性解决方案,sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端都没有实现主从切换的功能,而redis-sentinel就是一个独立运行的进程,用于监控多个master-slave集群, 自动发现master宕机,进行自动切换slave > master,类似Java这类客户端会通过sentinel发现redis主节点并与其建立连接,也可以实现读写分离。 环境准备: 192.168.43.145 (master) 192.168.43.146 (slave) 192.168.43.121 (slave) 三台机器下载安装包: #存放目录 /app/redis #下载安装包 wget https://download.redis.io/releases/redis-7.0.9.tar.gz #解压 tar -zxvf redis-7.0.9.tar.gz #由于redis是c语言编写的,所以我们需要先安装gcc,安装的命令如下: yum install gcc-c++ #然后 cd redis-7.0.9 make 主节点下: vim redis.conf 修改 bind 192.168.43.145 replica-read-only no vim sentinel.conf 修改 sentinel monitor mymaster 192.168.43.145 6379 2 192.168.43.146从节点下: vim redis.conf 修改 bind 192.168.43.146 replicaof 192.168.43.145 6379 vim sentinel.conf 修改 sentinel monitor mymaster 192.168.43.145 6379 2 192.168.43.121从节点下: vim redis.conf 修改 bind 192.168.43.121 replicaof 192.168.43.145 6379 vim sentinel.conf 修改 sentinel monitor mymaster 192.168.43.145 6379 2 启动服务: ./src/redis-sentinel ./sentinel.conf >> sentinel.log & ./src/redis-server ./redis.conf >> server.log & #是否有报错 tail -f server.log 注:如果报从节点无法copy,关闭主节点防火墙后,再重启防火墙 systemctl stop firewalld systemctl start firewalld systemctl status firewalld 登录主机节点查看集群信息: cd src ./redis-cli -h 192.168.43.145 -p 6379 info replication 至此集群搭建完毕! 二、数据迁移实时同步:redis-shake 1、安装包下载地址:https://github.com/tair-opensource/RedisShake/releases
安装目录 /app/redis-shake tar -zxvf redis-shake-linux-amd64.tar.gz 修改配置文件 shake.toml vim shake.toml [sync_reader]下 cluster = false #主从模式这里为fales address = "xxx.xxx.xxx.xxx:6379" # 源集群主节点ip username = "" # redis源集群用户名,没有可为空 password = "" # 源集群密码,没有可为空 [redis_writer]下 cluster = false # 主从模式这里为fales address = "xxx.xxx.xxx.xxx:6379" # 目标集群主节点ip username = "" #redis目标集群用户名,没有可为空L password = "" # 目标集群密码,没有可为空 #同步数据在目标集群下将进行重写 rdb_restore_command_behavior = "rewrite " # panic, rewrite or skip 保存退出后 启动命令: ./redis-shake shake.tool >> shake.log & 验证: 1、登录新老集群 执行 DBSIZE 查看数据量是否一致 2、在老集群下新增数据 新集群下能否实时查到 注:redis-shake 工具可能因为某些原因进程挂掉 建议编写自启脚本 启动 放置 /app/redis-shake 目录下 直接启动,start.sh即可 当需要切换集群时,将工具反向配置一下即可。注不能在两个集群中同时启动redis-shake,负责数据将不断在两集群间无限复制 标签:redis,192.168,集群,conf,shake,sentinel,双活 From: https://www.cnblogs.com/yebuzhiqiu/p/17882204.html