Redis sentinel 集群配置
监控多个集群:
每一个哨兵都可以去监控多个maser-slaves的主从架构
因为可能你的公司里,为不同的项目,部署了多个master-slaves的redis主从集群
相同的一套哨兵集群,就可以去监控不同的多个redis主从集群
你自己给每个redis主从集群分配一个逻辑的名称
sentinel monitor 集群A 127.0.0.1 6379 2 sentinel monitor 集群B 127.0.0.1 6379 2
安装要求:
只要安装redis就可以了,不需要去部署redis实例的启动
具体配置:
port 5000 bind 192.168.1.161 dir /var/sentinel/5000
sentinel monitor mymaster 192.168.1.161 6379 2
#如果redis有访问密码,则必须配置这个属性,如果不配置,sentinel启动时不会有任何报错,但监控不到Redis
#而且很重要一点,这个属性必须在 sentinel monitor 之后,不然报错:“No such master with specified name.”
sentinel auth-pass mymaster redispwd
sentinel down-after-milliseconds mymaster 30000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1
#生产环境配置下面内容
#使用命令启动哨兵后,哨兵自动进入后台执行
daemonize yes
#先用命令创建目录 mkdir -p /var/log/sentinal logfile /var/log/sentinal/5000
端口:5000 哨兵默认用26379端口,默认不能跟其他机器在指定端口连通,只能在本地访问
配置要监控的Redis: sentinel monitor master-group-name hostname port quorum
down-after-milliseconds: 超过多少毫秒跟一个redis实例断了连接,哨兵就可能认为这个redis实例挂了
parallel-syncs: 这个参数一般不去修改。新的master别切换之后,同时有多少个slave被切换到去连接新master,重新做同步,数字越低,花费的时间越多
failover-timeout: 执行故障转移的timeout超时时长
启动哨兵进程
下面两种启动方式都可以:
redis-sentinel /etc/sentinel/5000.conf #或者 redis-server /etc/sentinel/5000.conf --sentinel
日志里会显示出来,每个哨兵都能去监控到对应的redis master,并能够自动发现对应的slave
哨兵之间,互相会自动进行发现,用的就是之前说的pub/sub,消息发布和订阅channel消息系统和机制
检查哨兵状态
redis-cli -h 192.168.1.161 -p 5000 sentinel master mymaster SENTINEL slaves mymaster SENTINEL sentinels mymaster SENTINEL get-master-addr-by-name mymaster
哨兵集群实际效果
哨兵能自动发现 redis的主从各个节点是否挂掉,也能发现哨兵节点是否挂掉。
当发现Redis主节点挂掉后,哨兵会通过投票选举机制将一台从节点提升为主节点,之前挂掉的那台主节点重新启动后,会设置为从节点。
#刷新所有信息,立刻检查Redis主从各个节点情况
SENTINEL RESET *
daemonize yeslogfile /var/log/sentinal/5000
浙公网安备 33010602011771号