一、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
![](/i/l/?n=23&i=blog/1639215/202312/1639215-20231207154853621-660402788.png)
![](/i/l/?n=23&i=blog/1639215/202312/1639215-20231207154918493-1669724169.png)