zoukankan      html  css  js  c++  java
  • Redis主从、哨兵

    之前安装了redis,但是单节点redis不可靠,现在搭建redis主从,提高可用性。

    一、搭建一主二从

      redis主从其实是读写分离,主节点写数据,从节点读数据。

      1、准备三台redis机器。redis的密码需要一致,否则主从切换时会有问题。

      2、选择两台,作为从机,编辑redis核心配置文件。

    vim /usr/local/redis/redis.config

      3、修改配置(从机)

    #主节点ip和端口
    replicaof <master-ip> <master-port>
    #主节点redis密码
    masterauth <master-password>
    replica-read-only yes

      4、删除工作空间之前的rdb和aof文件,工作空间位置在安装redis时是自己定义的,我的是/usr/local/redis/working

      5、重启redis

    /etc/init.d/redis_init_script stop
    /etc/init.d/redis_init_script start

      6、进入/usr/local/redis/working,发现rdb和aof又出现了,这个是同步的主节点的。

      7、启动redis客户端,查看从节点状态,如图第一张从节点,第二张主节点

    redis-cli -a <password>
    info replication

          

      8、测试读写数据有没有问题

      9、至此,一主二从搭建完成,但是还有一个问题,主节点挂掉之后从节点不会自动选举出新的主节点,下边我们加入哨兵,解决这个问题

    二、哨兵(三台redis都要做如下配置)

      1、进入/usr/local/redis,创建并且配置sentinel.conf

    port 26379 
    pidfile "/usr/local/redis/sentinel/redis-sentinel.pid"
    dir "/usr/local/redis/sentinel"
    daemonize yes
    protected-mode no
    logfile "/usr/local/redis/sentinel/redis-sentinel.log"


    # 配置哨兵
    sentinel monitor mymaster 127.0.0.1 6379 2
    # 密码
    sentinel auth-pass <master-name> <password>
    # master被sentinel认定为失效的间隔时间
    sentinel down-after-milliseconds mymaster 30000
    # 剩余的slaves重新和新的master做同步的并行个数
    sentinel parallel-syncs mymaster 1
    # 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个时间后,会由其他的哨兵来处理
    sentinel failover-timeout mymaster 180000

      2、启动3台哨兵

    redis-sentinel sentinel.conf

      3、测试

      1. master挂了,看slave是否成为master
      2. master恢复,观察slave状态

      4、结论

        master挂了以后,由于哨兵监控,剩余slave会进行选举,选举后其中一个成为master,当原来的master恢复后,他会成为slave。

       5、补充:

        当主节点挂掉,变为从节点后,查看这台redis的信息(info replication),发现master_link_status:down。表示同步有问题。这是因为之前主节点没有配置

    masterauth <master-password>属性,他作为主节点时用不到这个,所以当时没问题,当作为从节点,因为没有主节点的密码,所以就同步不了数据了。

                                              整理自慕课网《java架构师体系课》

  • 相关阅读:
    安装oracle常见问题和解决方案
    配置VNC
    爬虫
    启动Tomcat报异常host-manager does not exist or is not a readable directory
    linux升级openssl
    linux6的yum源
    linux升级openssh
    linux操作oracle
    Linux 系统结构
    Linux MD5值递归比对目录中的文件是否有修改
  • 原文地址:https://www.cnblogs.com/hmxs/p/12101900.html
Copyright © 2011-2022 走看看