• Redis哨兵(Sentinel)


    1. 哨兵的作用

    (1)监控主库状态
    (2)自动选主,切换(6381 slaveof no one)
    (3)2号从库(6382)指向新主库(6381)
    (4)应用透明(切换过程用户无法感知,不影响体验)
    (5)自动处理故障节点(自愈)
    

    2. 哨兵搭建过程

    mkdir /data/26380  #26380为哨兵的端口,生产环境中为一个全新的节点
    cd /data/26380
    cat > sentinel.conf << EOF
    port 26380
    dir "/data/26380"
    sentinel monitor mymaster 127.0.0.1 6380 1   #mymaster为自定义的集群名称,后面的IP和端口为主库的信息。后面的1,表示的是如果有一台哨兵监控到主库宕机,则视为真的宕机。
    如果哨兵大于1台,数量根据实际情况而定。
    如有3台哨兵,上述最后的1改为2,(因为判断主库是否宕机,在多台哨兵之间是投票制的,n/2+1)
    
    sentinel down-after-milliseconds mymaster 5000  #主库发生宕机后,会有5秒的启动机会,超过5秒,就进行切换,此处5000的单位为毫秒。
    
    sentinel auth-pass mymaster 123  #集群主库的密码
    EOF
    
    启动:
    redis-sentinel /data/26380/sentinel.conf &>/tmp/sentinel.log &
    

    切换演示

    关闭主库
    [root@redis-01 /data/26380]# redis-cli -p 6380 -a 123 shutdown
    
    查看从库信息
    [root@redis-01 /data/26380]# redis-cli -p 6381 -a 123 info replication
    # Replication
    role:slave   #当前还是从库
    master_host:127.0.0.1
    master_port:6382   #主库发生了改变
    ……省略部分内容
    
    [root@redis-01 /data/26380]# redis-cli -p 6382 -a 123 info replication
    # Replication
    role:master   #6382变成了主
    connected_slaves:1
    slave0:ip=127.0.0.1,port=6381,state=online,offset=3286,lag=1  #因为6380宕机了,所以这里只有一台slave
    master_repl_offset:3419
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:2
    repl_backlog_histlen:3418
    
    把宕机的6380重新加入集群
    [root@redis-01 /data/26380]# redis-server /data/6380/redis.conf 
    [root@redis-01 /data/26380]# redis-cli -p 6382 -a 123 info replication
    # Replication
    role:master
    connected_slaves:2
    slave0:ip=127.0.0.1,port=6381,state=online,offset=7649,lag=1
    slave1:ip=127.0.0.1,port=6380,state=online,offset=7649,lag=0
    master_repl_offset:7782
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:2
    repl_backlog_histlen:7781
    [root@redis-01 /data/26380]# redis-cli -p 6380 -a 123 info replication
    # Replication
    role:slave
    master_host:127.0.0.1
    master_port:6382
    master_link_status:up
    master_last_io_seconds_ago:0
    master_sync_in_progress:0
    slave_repl_offset:8328
    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
    
  • 相关阅读:
    Linux命令集
    Java实现 LeetCode 648 单词替换(字典树)
    pci常用命令
    pci 设备 vendor device subsystem 驱动
    手动绑定驱动 + drivers_probe + rescan
    找不到网卡 pci probe function not called
    primary + secondary + malloc + rte_memzone_reserve
    gdb 打印结构体
    rte_fbarray_init
    DPDK 内存管理---malloc_heap和malloc_elem
  • 原文地址:https://www.cnblogs.com/xiets/p/13154206.html
Copyright © 2020-2023  润新知