场景

redis作为以后煊赫一时的NOSQL零碎,自身就反对主从集群,基于虚拟机入手搭建一个1主1从的redis集群(哨兵模式)。
redis集群(redis cluster)次要是解决单机数据存储问题,redis集群将数据分布式存储与多台机器上。然而很多状况下,在小用户公司机器不容许的状况下,咱们多采纳redis主从-哨兵模式。

搭建

1、环境筹备

这里应用2台服务器,每台服务器上开启一个redis-server和redis-sentinel服务,redis-server端口为7001,redis-sentinel的端口为6001。

redis-server阐明

  • 192.168.1.110:7001 主
  • 192.168.1.111:7001 从

redis-sentinel阐明

  • 192.168.1.110:6001
  • 192.168.1.111:6001

2、搭建redis零碎

先在三台机器上装置redis,具体步骤可参考虚拟机-搭建3主3从redis集群

装置实现后复制redis提供的默认配置文件

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

批改配置文件

cd /usr/local/redis  vim redis.conf  

主节点192.168.1.110上的配置

bind 192.168.1.100 //(留神:bind的意思不是绑定内部服务器的IP,而是绑定本机能够承受拜访的IP)port 7001 daemonize yes  //后盾过程requirepass 123456pidfile redis_7001.pid loglevel noticelogfile "/usr/local/redis/redis_7001.log" //日志文件寄存目录  dir /usr/local/redis/    //节点主目录寄存地位    appendonly yesdbfilename dump.rdbappendfilename "appendonly.aof"appendfsync everysec

从节点192.168.1.111上的配置

bind 192.168.1.111 //(留神:bind的意思不是绑定内部服务器的IP,而是绑定本机能够承受拜访的IP)port 7001 daemonize yes  //后盾过程requirepass 123456pidfile redis_7001.pid loglevel noticelogfile "/usr/local/redis/redis_7001.log" //日志文件寄存目录  dir /usr/local/redis/    //节点主目录寄存地位    #额定补充masterauth 123456slaveof  192.168.1.110 7001appendonly yesdbfilename dump.rdbappendfilename "appendonly.aof"appendfsync everysec

启动2台机器:

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

edis服务启动结束后,进入命令行,执行info replication查看以后主从配置

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

执行以下命令:

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

从新查看主从信息:

3、搭建redis-sentinel零碎

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

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

内容如下:

protected-mode nodaemonize yesport  6001sentinel monitor mymaster 192.168.1.110 7001 1sentinel auth-pass mymaster 123456#5秒内master6800没有响应,就认为SDOWNsentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 15000logfile  /var/log/redis/sentinel.logpidfile  /var/run/sentinel.pid

启动redis-sentinel

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

二、测试

1、主从复制测试

主节点增加数据:

从节点获取数据

2、故障转移测试

停掉主节点

查看redis集群信息

从节点192.168.1.112降级为主节点