redis通过哨兵模式实现主从切换

女爷i 2022-02-02 05:11 462阅读 0赞

环境:

  • server1:172.25.70.1 master
  • server2:172.25.70.2 slave
  • server3:172.25.70.3 slave

一、配置一主多从环境

1.解压

  1. [root@server1 ~]# tar zxf redis-5.0.3.tar.gz
  2. [root@server1 ~]# ls
  3. redis-5.0.3 redis-5.0.3.tar.gz
  4. [root@server1 ~]#

2.下载安装编译所需gcc

  1. yum install -y gcc

3.make && make install

  1. [root@server1 ~]# cd redis-5.0.3/
  2. [root@server1 redis-5.0.3]# ls
  3. 00-RELEASENOTES INSTALL runtest tests
  4. BUGS Makefile runtest-cluster utils
  5. CONTRIBUTING MANIFESTO runtest-sentinel
  6. COPYING README.md sentinel.conf
  7. deps redis.conf src
  8. [root@server1 redis-5.0.3]# make
  9. [root@server1 ~]# cd src/
  10. [root@server1 src]# make install

在这里插入图片描述

4.安装

  1. [root@server1 redis-5.0.3]# cd utils/
  2. [root@server1 utils]# ./install_server.sh
  3. Welcome to the redis service installer
  4. This script will help you easily set up a running redis server
  5. Please select the redis port for this instance: [6379]
  6. Selecting default: 6379
  7. Please select the redis config file name [/etc/redis/6379.conf]
  8. Selected default - /etc/redis/6379.conf
  9. Please select the redis log file name [/var/log/redis_6379.log]
  10. Selected default - /var/log/redis_6379.log
  11. Please select the data directory for this instance [/var/lib/redis/6379]
  12. Selected default - /var/lib/redis/6379
  13. Please select the redis executable path [/usr/local/bin/redis-server]
  14. Selected config:
  15. Port : 6379
  16. Config file : /etc/redis/6379.conf
  17. Log file : /var/log/redis_6379.log
  18. Data dir : /var/lib/redis/6379
  19. Executable : /usr/local/bin/redis-server
  20. Cli Executable : /usr/local/bin/redis-cli
  21. Is this ok? Then press ENTER to go on or Ctrl-C to abort.
  22. Copied /tmp/6379.conf => /etc/init.d/redis_6379
  23. Installing service...
  24. Successfully added to chkconfig!
  25. Successfully added to runlevels 345!
  26. Starting Redis server...
  27. Installation successful!

在这里插入图片描述

5.修改配置文件,并重启服务

  1. [root@server1 utils]# vim /etc/redis/6379.conf
  2. =====================
  3. 70 bind 0.0.0.0
  4. ========================
  5. [root@server1 utils]# /etc/init.d/redis_6379 restart
  6. Stopping ...
  7. Redis stopped
  8. Starting Redis server...

#查看端口

  1. [root@server1 utils]# netstat -antlupe | grep 6379
  2. tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 0 100152 7413/redis-server 0

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

6.将make完的redis发送给server2、server3

  1. [root@server1 ~]# scp -r redis-5.0.3 root@server2:
  2. [root@server1 ~]# scp -r redis-5.0.3 root@server3:

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

7.安装配置server2、server3

  1. [root@server2 redis-5.0.3]# cd src/
  2. [root@server2 src]# make install
  3. [root@server2 src]# cd ../utils/
  4. [root@server2 utils]# ./install_server.sh
  5. [root@server2 utils]# vim /etc/redis/6379.conf
  6. ===============================================
  7. 70 bind 0.0.0.0
  8. 1379 slaveof 172.25.70.1 6379
  9. =================================================
  10. [root@server2 utils]# /etc/init.d/redis_6379 restart

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

#在server1上查看主从状态

  1. [root@server1 redis-5.0.3]# redis-cli
  2. 127.0.0.1:6379> info
  3. '''
  4. # Replication
  5. role:master
  6. connected_slaves:2
  7. slave0:ip=172.25.70.2,port=6379,state=online,offset=630,lag=1
  8. slave1:ip=172.25.70.3,port=6379,state=online,offset=630,lag=1

在这里插入图片描述
server3操作同server2
在这里插入图片描述
在这里插入图片描述
server1上再次查看主从
在这里插入图片描述

  • server2
    在这里插入图片描述
  • server3
    在这里插入图片描述

二、哨兵机制

1.复制哨兵配置文件到redis配置文件目录

  1. [root@server1 ~]# cd redis-5.0.3/
  2. [root@server1 redis-5.0.3]# cp sentinel.conf /etc/redis/

2.修改哨兵配置文件

  1. vim /etc/redis/sentinel.conf
  2. ====================================================
  3. 84 sentinel monitor mymaster 172.25.70.1 6379 2
  4. ...
  5. 113 sentinel down-after-milliseconds mymaster 10000

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

3.给server2、server3发送哨兵文件

  1. [root@server1 redis-5.0.3]# cd /etc/redis/
  2. [root@server1 redis]# scp sentinel.conf server2:/etc/redis/
  3. sentinel.conf 100% 9712 9.5KB/s 00:00
  4. [root@server1 redis]# scp sentinel.conf server3:/etc/redis/
  5. sentinel.conf 100% 9712 9.5KB/s 00:00
  6. [root@server1 redis]#

在这里插入图片描述

4.server1-3执行哨兵

  • server1:

    [root@server1 redis]# redis-server /etc/redis/sentinel.conf —sentinel

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

  • server2:

    [root@server2 utils]# redis-server /etc/redis/sentinel.conf —sentinel

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

  • server3:

    [root@server3 utils]# redis-server /etc/redis/sentinel.conf —sentinel

在这里插入图片描述
在这里插入图片描述
可以看到信息,server1为master,server2-3都是slave节点。

5.测试

1.重新开启一个终端远程连接server1查看端口发现哨兵26379进程开启:

  1. [root@server1 ~]# netstat -antulpe

在这里插入图片描述
2.查看26479端口

  1. [root@server1 ~]# redis-cli -p 26379

在这里插入图片描述
注意:此时显示主是server1,sentinels=3表示成功
3.将server1的redis-cli关闭

  1. [root@server1 ~]# redis-cli
  2. 127.0.0.1:6379> SHUTDOWN
  3. not connected>

在这里插入图片描述
4.查看哨兵状态
在这里插入图片描述
我们可以看到此时哨兵为我们挑选了server3作为新的master

5.连接server2,查看redis状态
在这里插入图片描述
server3成为master

我们在新的master上写入信息,再在server2上查看:
在这里插入图片描述

  • server2
    在这里插入图片描述
    哨兵模式配置完毕

发表评论

表情:
评论列表 (有 0 条评论,462人围观)

还没有评论,来说两句吧...

相关阅读