Redis的主从复制和高可用搭建

一、redis的主从复制
1.下载并解压redis安装包

[root@server1 ~]# ls
redis-5.0.3.tar.gz
[root@server1 ~]# tar zxf redis-5.0.3.tar.gz 
[root@server1 ~]# ls
redis-5.0.3  redis-5.0.3.tar.gz

在这里插入图片描述
2.安装依赖包,编译并安装

[root@server1 ~]# cd redis-5.0.3
[root@server1 redis-5.0.3]# ls
00-RELEASENOTES  deps       README.md        runtest-sentinel  utils
BUGS             INSTALL    redis.conf       sentinel.conf
CONTRIBUTING     Makefile   runtest          src
COPYING          MANIFESTO  runtest-cluster  tests
[root@server1 redis-5.0.3]# yum install gcc -y
[root@server1 redis-5.0.3]# make
[root@server1 redis-5.0.3]# make install 

在这里插入图片描述
在这里插入图片描述
3.执行redis安装脚本

[root@server1 redis-5.0.3]# cd utils/
[root@server1 utils]# ls
[root@server1 utils]# ./install_server.sh 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.查看端口号

[root@server1 utils]# netstat -tnlp

在这里插入图片描述
5.编辑配置文件

[root@server1 utils]# vim /etc/redis/6379.conf
bind 0.0.0.0

6.重启redis服务,并查看端口号

[root@server1 utils]# /etc/init.d/redis_6379 restart
[root@server1 utils]# netstat -tnlp

在这里插入图片描述
7.把编译好的redis目录发送给server2和server3

[root@server1 ~]# scp -r redis-5.0.3 server2:/root/

[root@server1 ~]# scp -r redis-5.0.3 server3:/root/

8.server2上安装redis

[root@server2 ~]# cd redis-5.0.3/
[root@server2 redis-5.0.3]# ls
00-RELEASENOTES  deps       README.md        runtest-sentinel  utils
BUGS             INSTALL    redis.conf       sentinel.conf
CONTRIBUTING     Makefile   runtest          src
COPYING          MANIFESTO  runtest-cluster  tests
[root@server2 redis-5.0.3]# make install

在这里插入图片描述
在这里插入图片描述
9.server2上执行redis安装脚本

[root@server2 redis-5.0.3]# cd utils/
[root@server2 utils]# ./install_server.sh 

在这里插入图片描述

10.server2上编辑配置文件

[root@server2 utils]# vim /etc/redis/6379.conf 
bind 0.0.0.0
slaveof 172.25.21.1 6379

11.重启服务

[root@server2 utils]# /etc/init.d/redis_6379 restart

在这里插入图片描述

12.server3上安装redis

[root@server3 ~]# cd redis-5.0.3/
[root@server3 redis-5.0.3]# ls
00-RELEASENOTES  deps       README.md        runtest-sentinel  utils
BUGS             INSTALL    redis.conf       sentinel.conf
CONTRIBUTING     Makefile   runtest          src
COPYING          MANIFESTO  runtest-cluster  tests
[root@server3 redis-5.0.3]# make install

在这里插入图片描述

13.server3上执行redis安装脚本

[root@server3 redis-5.0.3]# cd utils/
[root@server3 utils]# ./install_server.sh 

在这里插入图片描述

14.server3上编辑配置文件

[root@server3 utils]# vim /etc/redis/6379.conf
bind 0.0.0.0
slaveof 172.25.21.1 6379

15.重启服务

[root@server3 utils]# /etc/init.d/redis_6379 restart

在这里插入图片描述

16.测试:在server1上查看到master是server1,两个slave分别是server2和server3

在这里插入图片描述
在这里插入图片描述
17.在server1(master)上添加信息

在这里插入图片描述
server2和server3上可以查看到添加的信息,表示主从复制成功

在这里插入图片描述

在这里插入图片描述
注意:两个slave端不可以写,只能读

二、redis主从切换
1.server1上,将文件sentinel.conf复制到/etc/redis/

[root@server1 ~]# cd redis-5.0.3
[root@server1 redis-5.0.3]# ls
00-RELEASENOTES  deps       README.md        runtest-sentinel  utils
BUGS             INSTALL    redis.conf       sentinel.conf
CONTRIBUTING     Makefile   runtest          src
COPYING          MANIFESTO  runtest-cluster  tests
[root@server1 redis-5.0.3]# cp sentinel.conf /etc/redis/

在这里插入图片描述

2.切换到/etc/redis/目录下,编辑文件

[root@server1 redis-5.0.3]# cd /etc/redis/
[root@server1 redis]# ls
6379.conf  sentinel.conf
[root@server1 redis]# vim sentinel.conf 
protected-mode no
sentinel monitor mymaster 172.25.21.1 6379 2
sentinel down-after-milliseconds mymaster 10000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

在这里插入图片描述

3.将编辑好的配置文件发送给server2和server3的/etc/redis/目录下

[root@server1 redis]# scp sentinel.conf server2:/etc/redis/
sentinel.conf                          100% 9710     9.5KB/s   00:00    
[root@server1 redis]# scp sentinel.conf server3:/etc/redis/
sentinel.conf                          100% 9710     9.5KB/s   00:00    

在这里插入图片描述

4.查看状态,server1上可以查看到两个slave分别是server2和server3
在这里插入图片描述
在这里插入图片描述
在server2和server3上查看到master为server1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.测试:三台虚拟机执行监控命令(哨兵),并打入后台

[root@server1 ~]# redis-server /etc/redis/sentinel.conf --sentinel
[root@server2 ~]# redis-server /etc/redis/sentinel.conf --sentinel
[root@server3 ~]# redis-server /etc/redis/sentinel.conf --sentinel

在这里插入图片描述

6.宕掉server1(master)监控命令显示master从server1转换到server3上
在这里插入图片描述
在这里插入图片描述
在server3上查看,显示是matser状态,有一个slave是server2
在这里插入图片描述
在这里插入图片描述
在server2上查看显示slave状态,master为server3

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值