场景
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 123456
pidfile redis_7001.pid
loglevel notice
logfile "/usr/local/redis/redis_7001.log" // 日志文件寄存目录
dir /usr/local/redis/ // 节点主目录寄存地位
appendonly yes
dbfilename dump.rdb
appendfilename "appendonly.aof"
appendfsync everysec
从节点 192.168.1.111 上的配置
bind 192.168.1.111 //(留神:bind 的意思不是绑定内部服务器的 IP,而是绑定本机能够承受拜访的 IP)
port 7001
daemonize yes // 后盾过程
requirepass 123456
pidfile redis_7001.pid
loglevel notice
logfile "/usr/local/redis/redis_7001.log" // 日志文件寄存目录
dir /usr/local/redis/ // 节点主目录寄存地位
#额定补充
masterauth 123456
slaveof 192.168.1.110 7001
appendonly yes
dbfilename dump.rdb
appendfilename "appendonly.aof"
appendfsync everysec
启动 2 台机器:
./bin/redis-server ./redis.conf
edis 服务启动结束后,进入命令行,执行 info replication 查看以后主从配置
如果如上图所示没有发现从节点,很有可能是防火墙没有凋谢 7001 端口导致主从节点之间没法通信.
执行以下命令:
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-4.0.1/redis.conf /usr/local/redis
vim /usr/local/redis/sentinel.conf
内容如下:
protected-mode no
daemonize yes
port 6001
sentinel monitor mymaster 192.168.1.110 7001 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.1.112 降级为主节点