redis哨兵集群环境搭建

一、哨兵的介绍

哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下:

  1. 集群监控,负责监控redis master和slave进程是否正常工作
  2. 消息通知,如果某个redis实例故障,哨兵负责发送消息通知给管理员
  3. 故障转移,如果master node 挂掉了,会自动转移slave node
  4. 配置中心,如果故障转移发生了,通知client客户端新的master地址

哨兵的核心知识:

  1. 哨兵集群至少三个实例

    假设两个哨兵的集群下,Configuration: quorum = 1 (配置需要1个哨兵认为master宕机),主备切换还需一个条件majority (大多数哨兵是运行的),如果两个哨兵主机所在的机器宕机了,则剩下一个哨兵实例,则不满足大多数哨兵是运行的这个条件

  2. 哨兵+redis主从架构,是保证不了数据零丢失, 只能保证redis集群的高可用

二、哨兵集群环境搭建

# mkdir /etc/sentinel
# mkdir -p /var/sentinel/5000
# mkdir -p /var/log/sentinal/5000
# cp /usr/local/redis-3.2.8/sentinel.conf /etc/sentinel
# mv /etc/sentinel/sentinel.conf /etc/sentinel/5000.conf 

# vi /etc/sentinel/5000.conf
    ## 修改
    port 5000
    bind 192.168.27.11      ## 当前机器的ip地址
    dir /var/sentinel/5000
    sentinel monitor mymaster 192.168.27.11 6379 2
    sentinel down-after-milliseconds mymaster 30000
    sentinel failover-timeout mymaster 60000
    sentinel parallel-syncs mymaster 1
    logfile /var/log/sentinel/5000/sentinel.log

## 启动哨兵进程
# redis-sentinel /etc/sentinel/5000.conf
# redis-server /etc/sentinel/5000.conf --sentinel

## 检查哨兵状态
# redis-cli -h 192.168.27.11 -p 5000
> sentinel master mymaster
> sentinel slaves mymaster
> sentinel sentinels mymaster
> sentinel get-master-addr-by-name mymaster

三、高可用容灾演练测试

强制停掉主节点的redis

# ps -ef|grep redis 
# kill -9 进程号
# rm -rf /var/run/redis_6379.pid

## 查看哨兵监控日志
# cat /var/log/sentinel/5000/sentinel.log

## 查看当前的master节点
# redis-cli -h 192.168.27.11 -p 5000
> sentinel get-master-addr-by-name mymaster
原文地址:https://www.cnblogs.com/haoxianrui/p/10226819.html