redis主从集群搭建

redis作为当前炙手可热的NOSQL系统,本身就支持主从集群,下面我们就来动手搭建一个一主两从的redis集群。

一、安装操作

1、环境准备

这里使用三台服务器,每台服务器上开启一个redis-server和redis-sentinel服务,redis-server端口为8000,redis-sentinel的端口为6800,修改默认端口是安全的第一步。

redis-server说明

  • 192.168.68.110:8000 主
  • 192.168.68.111:8000 从
  • 192.168.68.112:8000 从

redis-sentinel说明

  • 192.168.68.110:6800
  • 192.168.68.111:6800
  • 192.168.68.112:6800

2、搭建redis系统

先在三台机器上安装redis,具体步骤可参考Linux下redis安装(单机版)

安装完成后复制redis提供的默认配置文件

cp /usr/src/redis-3.2.1/redis.conf /usr/local/redis

修改配置文件

cd /usr/local/redis
vim redis.conf

主节点192.168.68.110上的配置

port  8000          
daemonize  yes
bind  0.0.0.0
requirepass 123456
masterauth 123456 pidfile /var/run/redis-8000.pid logfile /var/log/redis/redis-8000.log

从节点192.168.68.111,192.168.68.112上的配置

port  8000          
daemonize  yes
bind  0.0.0.0
requirepass 123456
masterauth 123456 pidfile /var/run/redis-8000.pid logfile /var/log/redis/redis-8000.log slaveof 192.168.68.110

注意:redis不会帮我们创建目录,所以在启动之前需要创建目录/var/log/redis

启动三台机器上的redis

./bin/redis-server ./redis.conf

三个redis服务启动完毕后,进入命令行,执行info replication查看当前主从配置

如果如上图所示没有发现从节点,很有可能是防火墙没有开放8000端口导致主从节点之间没法通信

执行以下命令

firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=6800/tcp --permanent
firewall-cmd --reload

重新查看主从信息

3、搭建redis-sentinel系统

首先复制默认的配置文件并修改

cp /usr/src/redis-3.2.1/sentinel.conf /usr/local/redis/
vim /usr/local/redis/sentinel.conf

内容如下

protected-mode no
daemonize yes
port  6800
sentinel monitor mymaster 192.168.68.110 8000 1
sentinel auth-pass mymaster 123456
#5秒内master6800没有响应,就认为SDOWN
sentinel down-after-milliseconds mymaster 5000  
sentinel failover-timeout mymaster 15000
logfile  /var/log/redis/sentinel.log
pidfile  /var/run/sentinel.pid

启动redis-sentinel

./bin/redis-sentinel ./sentinel.conf

二、故障转移测试

1、停掉主节点

2、查看redis集群信息

结果显示192.168.68.112升级为主节点

猜你喜欢

转载自www.cnblogs.com/carrychan/p/9396997.html