zoukankan      html  css  js  c++  java
  • Redis Sentinel用法

    1 Redis Sentinel

    1.1 哨兵的作用

    • 1. 监控:监控主从是否正常
    • 2. 通知:出现问题时,可以通知相关人员
    • 3. 故障迁移:自动主从切换
    • 4. 统一的配置管理:连接者询问sentinel取得主从的地址

    1.2 搭建redis主从

    •  主redis配置文件
    [root@redis01 conf]# cat /usr/local/redis/conf/redis.conf 
    bind 0.0.0.0
    protected-mode no
    port 6379
    tcp-backlog 511
    timeout 0
    tcp-keepalive 300
    daemonize yes
    supervised no
    pidfile "/var/run/redis_6379.pid"
    requirepass "abc"
    masterauth "abc"
    loglevel notice
    logfile ""
    databases 16
    save 900 1
    save 300 10
    save 60 10000
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename "dump.rdb"
    dir "/usr/local/redis/conf"
    slave-serve-stale-data yes
    slave-read-only yes
    repl-diskless-sync no
    repl-diskless-sync-delay 5
    repl-disable-tcp-nodelay no
    slave-priority 100
    appendonly no
    appendfilename "appendonly.aof"
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    aof-load-truncated yes
    lua-time-limit 5000
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    latency-monitor-threshold 0
    notify-keyspace-events ""
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-size -2
    list-compress-depth 0
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    hll-sparse-max-bytes 3000
    activerehashing yes
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    hz 10
    aof-rewrite-incremental-fsync yes
    # Generated by CONFIG REWRITE
    
    • 主sentinel配置文件
    [root@redis01 conf]# cat sentinel.conf 
    sentinel monitor mymaster 10.0.0.61 6379 2
    sentinel down-after-milliseconds mymaster 15000
    sentinel failover-timeout mymaster 80000
    sentinel auth-pass mymaster abc
    bind 10.0.0.61
    protected-mode yes
    daemonize yes
    logfile "/usr/local/redis/conf/sentinel.log"
    

    1.3 从节点配置 

    [root@redis02 conf]# cat redis.conf 
    bind 0.0.0.0
    protected-mode no
    port 6379
    tcp-backlog 511
    timeout 0
    tcp-keepalive 300
    cluster-enabled no
    cluster-config-file "nodes_6379.conf"
    cluster-node-timeout 15000
    daemonize yes
    supervised no
    pidfile "/var/run/redis_6379.pid"
    masterauth "abc"
    requirepass "abc"
    loglevel notice
    logfile ""
    databases 16
    save 900 1
    save 300 10
    save 60 10000
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename "dump.rdb"
    dir "/usr/local/redis/conf"
    slave-serve-stale-data yes
    slave-read-only yes
    repl-diskless-sync no
    repl-diskless-sync-delay 5
    repl-disable-tcp-nodelay no
    slave-priority 100
    appendonly no
    appendfilename "appendonly.aof"
    appendfsync everysec
    no-appendfsync-on-rewrite no
    auto-aof-rewrite-percentage 100
    auto-aof-rewrite-min-size 64mb
    aof-load-truncated yes
    lua-time-limit 5000
    slowlog-log-slower-than 10000
    slowlog-max-len 128
    latency-monitor-threshold 0
    notify-keyspace-events ""
    hash-max-ziplist-entries 512
    hash-max-ziplist-value 64
    list-max-ziplist-size -2
    list-compress-depth 0
    set-max-intset-entries 512
    zset-max-ziplist-entries 128
    zset-max-ziplist-value 64
    hll-sparse-max-bytes 3000
    activerehashing yes
    client-output-buffer-limit normal 0 0 0
    client-output-buffer-limit slave 256mb 64mb 60
    client-output-buffer-limit pubsub 32mb 8mb 60
    hz 10
    aof-rewrite-incremental-fsync yes
    
    • sentinel配置  
    [root@redis02 conf]# cat sentinel.conf 
    sentinel monitor mymaster 10.0.0.62 6379 2   #监控主节点
    sentinel down-after-milliseconds mymaster 15000   
    sentinel failover-timeout mymaster 80000
    sentinel auth-pass mymaster abc   #密码
    bind 10.0.0.62
    daemonize yes                                #后台
    protected-mode yes                           #使用安全
    logfile "/usr/local/redis/conf/sentinel.log"
    • 切换日志
    5104:X 03 Feb 22:49:01.306 # +try-failover master mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.308 # +vote-for-leader de08855c7e8920b21ae90cb716280882dd519558 4
    5104:X 03 Feb 22:49:01.313 # 18e37e8ca155d107964e8c9cf64f2d15e4729826 voted for de08855c7e8920b21ae90cb716280882dd519558 4
    5104:X 03 Feb 22:49:01.364 # +elected-leader master mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.364 # +failover-state-select-slave master mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.431 # +selected-slave slave 10.0.0.62:6379 10.0.0.62 6379 @ mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.431 * +failover-state-send-slaveof-noone slave 10.0.0.62:6379 10.0.0.62 6379 @ mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.508 * +failover-state-wait-promotion slave 10.0.0.62:6379 10.0.0.62 6379 @ mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.512 # +promoted-slave slave 10.0.0.62:6379 10.0.0.62 6379 @ mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.512 # +failover-state-reconf-slaves master mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.599 # +failover-end master mymaster 10.0.0.61 6379
    5104:X 03 Feb 22:49:01.599 # +switch-master mymaster 10.0.0.61 6379 10.0.0.62 6379
    5104:X 03 Feb 22:49:01.599 * +slave slave 10.0.0.61:6379 10.0.0.61 6379 @ mymaster 10.0.0.62 6379
    5104:X 03 Feb 22:49:16.661 # +sdown slave 10.0.0.61:6379 10.0.0.61 6379 @ mymaster 10.0.0.62 6379
    5104:signal-handler (1517669370) Received SIGINT scheduling shutdown...
    5104:X 03 Feb 22:49:30.193 # User requested shutdown...
    5104:X 03 Feb 22:49:30.193 # Sentinel is now ready to exit, bye bye...
    
    •  重置主从
    [root@redis01 conf]# redis-cli -a abc
    127.0.0.1:6379> INFO replication
    # Replication
    role:slave
    master_host:10.0.0.62
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:1
    master_sync_in_progress:0
    slave_repl_offset:47568
    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
    127.0.0.1:6379> slaveof no one
    OK
    [root@redis02 conf]# redis-cli -a abc 
    127.0.0.1:6379> SLAVEOF 10.0.0.61 6379
    OK
    

      

      

  • 相关阅读:
    Java面试——从JVM角度比较equals和==的区别
    Java线程和多线程(三)——线程安全和同步
    玩转Android之MVVM开发模式实战,炫酷的DataBinding!
    写点什么好呢2? 钱、事业、婚姻、人生意义
    写点什么好呢2? 钱、事业、婚姻、人生意义
    大型网站架构技术一览
    【树莓派】GSM900模块
    【Latex】数学公式排版
    【MYSQL】导入中文后乱码问题
    【R】shiny界面
  • 原文地址:https://www.cnblogs.com/so-cool/p/8205604.html
Copyright © 2011-2022 走看看