redis 主从_Redis主从同步+自动切换

本文详细介绍了如何在两台CentOS7服务器上配置Redis主从同步,并通过哨兵系统实现自动故障切换。包括安装Redis、配置主从复制、后台启动Redis、配置哨兵以及验证故障切换功能的步骤。
摘要由CSDN通过智能技术生成

f32a4024d094064d366b9dc32677ab39.png

一构建:

1.两台centos7服务器:

      192.168.1.100和192.168.1.115

2. 安装必须的软件包:

yum install gcc gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim ruby rubygems unzip git -y

3. 下载redis源码包并安装:

wget http://download.redis.io/releases/redis-3.2.3.tar.gz

tar -zxvf redis-3.2.3.tar.gz

cd redis-3.2.3

make && make install

4.将redis目录转移至/usr/loacl/redis下:

(1).创建redis目录:

cd /usr/local

mkdir -p redis/bin

mkdir -p redis/etc

(2) .将源码包下面的reids.conf 复制到新建的etc下,将源码包下面的src目录中的redis-server redis-cli  redis-check-aof redis-benchmark mkreleasehdr.sh 文件复制到新建的bin目录下:

  cd /usr/local/redis

  cp /root/redis-3.2.3/redis.conf etc/

  cd /root/redis-3.2.3/src/

  cp redis-server redis-cli redis-check-aof redis-benchmark mkreleasehdr.sh /usr/local/redis/bin/

5.配置redis主从复制:

(1) .在主机192.168.1.100(主)的配置:

0e5735c9dc1022f4d156d185a57a10ad.png

7b5b6873f9f2f520286f869abc3956b9.png

c8fd4da5fd3d995264c9de2a89973bae.png

2453095678665015ab87b6412431bcac.png

32bda34c95cee680accef823349427f1.png

(2).在主机192.168.1.115(从)上的配置:

至此,主从配置完成,进入/usr/local/redis启动两台实例:

       bin/redis-server etc/redis.conf  

此时的redis启动直接占据控制台,我们可以将其修改为后台启动,ctrl+c关闭redis,编辑etc目录下的redis.cnf文件将daemonize no改为daemonize yes,重新启动即可

使用命令查看主从复制状态:

192b0409e2f07ea20a5d2894179bbb95.png

9669153db0e0506eaf7ff01225c1b451.png

935b582389463fd1d0c97794421db65d.png

32bda34c95cee680accef823349427f1.png

至此,主从配置完成,进入/usr/local/redis启动两台实例:

       bin/redis-server etc/redis.conf  

此时的redis启动直接占据控制台,我们可以将其修改为后台启动,ctrl+c关闭redis,编辑etc目录下的redis.cnf文件将daemonize no改为daemonize yes,重新启动即可

使用命令查看主从复制状态:

b6360ae40a64c5ef6427b0e963c71e16.png

显示

指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态。

状态为:192.168.1.100为master,192.168.1.115为slave

6. 使用哨兵(Sentinel)进行主从间的故障自动切换,我们在192.168.1.100上搭建sentinel(哨兵)

           cd /root/redis-3.2.3/

           cp sentinel.conf /usr/local/redis/etc/

           cd /usr/local/redis/etc/

           vim sentinel.conf

(1).路径:

f7b61340eb2e0622f822bc490ae428df.png

(2).指定sentinel去监视一个名为mymaster的Master,Master的IP地址为192.168.1.100

4d0715097b24ebab2df94c3ece4dc40f.png

(3).如果redis有登陆密码的话必须配置这项参数:

b45ff82fa993adef0a1872a34b973b23.png

(4)连接192.168.1.100的redis的密码

8d4fd8a309b07d422f56c41da30dcff5.png

(5).指定Sentinel判定Master断线的时间。(单位为毫秒,判定为主观下线SDOWN)

5b5367a2466b1a0ed88dae6b40e8addd.png

(6).如果在该时间(ms)内未能完成failover(即故障时master/slave自动切换

)操作,则认为该failover失败。

ef2af9824dcc571c28e565bf1d95ddc8.png

指定在执行故障转移时,最多可以有多少个Slave同时对新的Master进行同步。这个数字设置为1,虽然完成故障转移所需的时间会变长,但是可以保证每次只有1个Slave处于不能处理命令请求的状态。

sentinel parallel-syncs my mymaster 1

168f9944e8f7f8abd96a5d7efd726efc.png

我们可以看到主为192.168.1.100,从为192.168.1.115,接下来验证故障切换功能:

649e179377527bd7dcff4e3e056a8491.png

aa67f6f9f97a21c65189b09c3ef324ee.png

8c36f9c620c4c598f612d25c05f4643e.png

当我们关闭主时,master自动变为192.168.1.115,我们重新启动192.168.1.115时,发现192.168.1.115已经变为slave服务器,至此哨兵模式的故障切换完成(可在主从上同时部署哨兵)。

附加:

登陆redis的命令:

bin/redis-cli -h 192.168.1.100 -p 6379 -a pwd@123

bin/redis-cli -h 192.168.1.115 -p 6380 -a pwd@123

bin/redis-cli -h 192.168.1.100 -p 6379 -a pwd@123 info replication

bin/redis-cli -h 192.168.1.115 -p 6380 -a pwd@123 info replication

原文:https://blog.csdn.net/qq_40417179/article/details/80987085

8ef9dbb6c09af4410d472b6d0c8bd6be.png 9562cbf26bcb3370ab540c8e9dda188f.gif 891d61cd9598ad2cc36781c6d42472b4.png 22e05b1d7c779547dcde588598d5c974.gif想要获取学习实战、高并发、架构 、笔试面试资料请扫码咨询+薇薇微信
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值