redis的主从复制,及高可用

一、redis的安装

先下载安装包zxf redis-4.0.8.tar.gz
在server1中:

tar zxf redis-4.0.8.tar.gz  ##解压安装包
cd redis-4.0.8
yum install gcc -y   
make && make install  ###安装

安装完成
这里写图片描述

cd redis-4.0.8/utils/
./install_server.sh   执行这个脚本

这里写图片描述

二、redis的主从复制

编辑redis的配置文件

vim /etc/redis/6379.conf 
找到第70行的bind  后面写0.0.0.0
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start

这里写图片描述
在server2中:

tar zxf redis-4.0.8.tar.gz
cd redis-4.0.8
yum install gcc -y
make && make install
cd redis-4.0.8/utils/
./install_server.sh   执行这个脚本
vim /etc/redis/6379.conf 
找到第70行的bind  后面写0.0.0.0
找到第283行,写入172.25.3.1 6379
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start

这里写图片描述
这里写图片描述
如上操作所示,已经完成redis的主从复制
测试:在master端server1:set name xbw,在server2查看
执行redis-cli,登陆
这里写图片描述
这里写图片描述

三、redis高可用

高可用原理:
自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, 
Sentinel 会开始一次自动故障迁移操作, 
它会将失效主服务器的其中一个从服务器升级为新的主服务器, 
并让失效主服务器的其他从服务器改为复制新的主服务器; 
当客户端试图连接失效的主服务器时, 
集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。

配置环境:三台虚拟机安装 redis 服务
Server1: 172.25.70.1 (先做 master)
Server2:172.25.70.2
Server3:172.25.70.3
按主从复制先配置好一主两从

1)在安装包中将 sentinel 文件复制到/etc/redis/下
[root@server1 ~]# cd redis-4.0.8
[root@server1 redis-4.0.8]# cp sentinel.conf /etc/redis/
[root@server1 redis-4.0.8]# cd /etc/redis/
[root@server1 redis]# ls
6379.conf  sentinel.conf
[root@server1 redis]# vim sentinel.conf 
完成后将 sentinel 配置文件发送 server2 和 sevrer3
[root@server1 redis]# scp sentinel.conf server2:/etc/redis/  
[root@server1 redis]# scp sentinel.conf server3:/etc/redis/

2)编辑 sentinel.conf 如下图

关闭保护模式
这里写图片描述

配置指示 Sentinel 去监视一个名为 mymaster 的主服务器,
这个主服务器的IP 地址为 172.25.70.1,端口号为 6379 
,而将这个主服务器判断为失效至少需要 2 个 Sentinel 同意
(只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)

这里写图片描述

3)三台 redis 启动 Sentinel 服务

这里写图片描述
这里写图片描述
+slave 表示 :一个新的从服务器已经被 Sentinel 识别并关联。可以看到片此时 master 是 server3;server4 和 server5 是 slave。

4)测试:master 端 server1 info 查看 replication 信息:

这里写图片描述
将server1shutdown,查看后 shotdown
这里写图片描述
此时:server2 监听如下图
这里写图片描述
+switch-master :配置变更,主服务器的 IP 和地址已经改变。
+sdown :给定的实例 server1 现在处于主观下线状态。

根据信息我们可以看到此时 master 为 server2,我们在 server2 查看info 信息如下图,server2成为master,只有一个slave是server3
这里写图片描述
而在server3中查看info,它显示为master是server2
这里写图片描述

猜你喜欢

转载自blog.csdn.net/xbw_linux123/article/details/81591910