哨兵模式的redis部署

redis的集群模式有三种,主从模式、哨兵模式和cluster集群,本例主要是说明下哨兵模式的部署

一、说明

哨兵模式是基于主从配置,先配置一主多从的环境,然后由哨兵来监控各个节点的运行情况,如果master节点宕机之后会自主在剩下存活的节点中选取一个作为master节点,宕机的节点修复之后启动,会重新作为从节点加入到主从环境中,这过程中每个节点的配置文件(redis.conf)中关于主从配置的参数会自行进行修改。

二、Redis 主从配置

1、修改master配置,上面服务都是以默认的参数进行配置。

  • vim /etc/redis/6379.conf 添加如下内容:
    # 修改以下内容开启远程访问
    bind 0.0.0.0
    # 添加一个密码
    requirepass "123"
    

2、修改两台slave服务器的配置。

  • vim /etc/redis/6379.conf 添加如下内容:

    # 修改以下内容开启远程访问
    bind 0.0.0.0
    # 添加一个密码
    requirepass 123
    # 192.168.1.166为主节点ip,6379为端口
    slaveof 192.168.1.166 6379
    masterauth 123
    

    [NOTE]
    较新的版本中,slaveof 已经更改为 replicaof ,需要注意,另外如果配置了密码,在master节点上也需要先配置好 masterauth 这个选项,为了在自主切换之后原master节点作为从节点之后能同步到新主节点上的数据。

3、检查主从状态

  • redis-cli -h 127.0.0.1 -p 6379 -a "password" info Replication

三、Redis sentinel 配置

  • 复制模版配置文件
    cp /u01/install/redis-5.0.5/sentinel.conf /etc/redis/

  • 修改配置文件
    vim /etc/redis/sentinel.conf 添加如下内容:

    # sentinel monitor [master-group-name] [ip] [port] [quorum]
    sentinel monitor mymaster 192.168.1.166 6379 2
    # 主服务器 redis密码
    sentinel auth-pass mymaster 123
    # 后台运行
    daemonize yes
    # log文件
    logfile "/var/log/sentinel.log"
    

    [NOTE]
    sentinel monitor mymaster 192.168.1.166 6379 2
    该行的意思是:监控的master的名字叫做mymaster (可以自定义),地址为192.168.1.166:6379,行尾最后的一个2代表在sentinel集群中,多少个sentinel认为master死了,才能真正认为该master不可用了。

  • 启动哨兵模式
    需要先启动redis主服务,即 service redis_6379 start
    然手启动哨兵模式, redis-server sentinel.conf --sentinel

四、配置哨兵模式开机自动启动

  • 这里主要是以配置systemctl系统服务的方式来配置开机自启,另哨兵模式的启动要求先启动主服务,可以将主服务考虑一并做成systemctl系统服务。

  • 编写redis.service文件:vim /usr/lib/systemd/system/redis.service

    [Unit]
    Description=The redis_6379 Process Manager
    After=syslog.target network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
    ExecReload=/bin/kill -USR2 $MAINPID
    ExecStop=/bin/kill -SIGINT $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    

    [NOTE]
    若配置了密码,ExecStop的部分可以改成 /usr/local/bin/redis-cli -p 6379 -a "password" shutdown

  • 设置redis主服务开机启动 systemctl enable redis

  • 编写redis-sentinel.service文件:vim /usr/lib/systemd/system/redis-sentinel.service

    [Unit]
    Description=The redis-sentinel Process Manager
    After=syslog.target network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/redis-server /etc/redis/sentinel.conf --sentinel
    ExecReload=/bin/kill -USR2 $MAINPID
    ExecStop=/bin/kill -SIGINT $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
  • 设置哨兵模式开机启动 systemctl enable redis-sentinel

posted @ 2020-11-02 15:07  灬夜露沁心灬  阅读(401)  评论(0编辑  收藏  举报