zoukankan      html  css  js  c++  java
  • redis sentinel 主从复制和主从切换

    一、架构环境

    系统CentOS 6.8 64位
    ip:192.168.1.16(主)
    ip:192.168.1.17(从)

    二、配置

    1、安装redis,把下载好的redis包解压安装

    #tar -zxvf redis-3.2.1.tar.gz
    #cd redis-3.2.1/
    #make
    #mkdir /usr/redis/
    #cp redis.conf /usr/redis/
    #cp sentinel.conf /usr/redis/
    #cd ./src
    #cp redis-server /usr/redis/
    #cp redis-benchmark /usr/redis/
    #cp redis-sentinel /usr/redis/
    #cp redis-cli /usr/redis/

    2、修改redis.conf配置文件

    #vi /usr/redis/redis.conf
    bind 0.0.0.0               //可以连接任何IP
    daemonize yes     //后台运行
    logfile "/usr/redis/logs/redis.log"     //redis日志
    其他的参数按需修改
    从的redis.conf和主的一样,加上
    slaveof 192.168.1.16 6379    //主的ip和主的端口

    3、启动两边的redis

    #./usr/redis/redis.server redis.conf        //先启动主的,再启动从的

    4、查看状态

    主
    #./redis-cli -h 192.168.1.16 -p 6379 info replication
    # Replication
    role:master
    connected_slaves:1
    slave0:ip=192.168.1.17,port=6379,state=online,offset=1720,lag=1
    master_repl_offset:1720
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:2
    repl_backlog_histlen:1719
    从
    #./redis-cli -h 192.168.1.17 -p 6379 info replication
    # Replication
    role:slave
    master_host:192.168.1.16
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:1
    master_sync_in_progress:0
    slave_repl_offset:455
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_repl_offset:0
    repl_backlog_active:0
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:0
    repl_backlog_histlen:0

    5、配置sentinel

    #vi /usr/redis/sentinel.conf
    port 26379
    daemonize yes                    //手动添加后台运行参数
    logfile "/usr/redis/logs/sentinel.log"        //手动添加日志路径
    sentinel myid e8ef14fe85e52010fc2537bb21c6b62373f36acd
    sentinel monitor mymaster 192.168.1.17 6379 1
    sentinel down-after-milliseconds mymaster 15000
    sentinel failover-timeout mymaster 900000
    protected-mode no                     //手动添加mode参数,不然哨兵集群会连接不上

    6、启动sentinel

    ./redis-sentinel sentinel.conf

    7、故障演示

    把主的服务宕了或者kill -9 redis的进程

    #./redis-cli -h 192.168.18.136 -p 6379 shutdown

    这边可以看到,sentinel监控到主的redis服务停止了,自动把从的redis切换到主了
    当再次启动宕掉的redis服务,你会发现原来的主变成从了

    这样主从机制的配置完成了

  • 相关阅读:
    java判断一个字符串是否包含某个字符
    Java去掉Html标签的方法
    如何转换成utf-8格式的,在jsp页面中正常显示换行
    a标签设置手型
    a标签置灰不可点击
    校验手机号码格式
    用JQuery 判断某个属性是否存在hasAttr的解决方法
    验证手机号码 (包含166和199)
    获取短信验证码倒计时
    Noisy Channel模型纠正单词拼写错误
  • 原文地址:https://www.cnblogs.com/guantou1992/p/9729340.html
Copyright © 2011-2022 走看看