zoukankan      html  css  js  c++  java
  • Linux

    Linux - redis哨兵集群实例

    命令整理

    官网地址:http://redisdoc.com/
    
    redis-cli info #查看redis数据库信息
    
    redis-cli info replication #查看redis的复制授权信息
    
    redis-cli info sentinel   #查看redis的哨兵信息
    

    配置流程

    思路:

    redis主从
    
    一主两从的方案
    

    1.环境准备,准备一主两从的redis架构

    redis-6379.conf

    port 6379
    
    daemonize yes
    
    logfile "6379.log"
    
    dbfilename "dump-6379.rdb"
    
    dir "/opt/redis/6379/"
    

    redis-6380.conf

    port 6380
    
    daemonize yes
    
    logfile "6380.log"
    
    dbfilename "dump-6380.rdb"
    
    dir "/opt/redis/6380/"
    
    slaveof  127.0.0.1  6379
    

    redis-6381.conf

    port 6381
    
    daemonize yes
    
    logfile "6381.log"
    
    dbfilename "dump-6381.rdb"
    
    dir "/opt/redis/6381/"
    
    slaveof  127.0.0.1  6379
    

    2.准备三个数据文件夹

    mkdir -p  /opt/redis/{6379,6380,6381}
    

    3。分别启动三个数据库

    [root@master sbredis]# redis-server redis-6379.conf 
    
    [root@master sbredis]# redis-server redis-6380.conf 
    
    [root@master sbredis]# redis-server redis-6381.conf 
    

    4.检测主从状态

    redis-cli -p 6379   info replication
    
    redis-cli -p 6380   info replication
    
    redis-cli -p 6381   info replication
    

    5.准备三个redis哨兵,进行检测主从状态

    准备三个哨兵的配置文件

    redis-26379.conf

    // Sentinel节点的端口
    port 26379  
    dir /var/redis/data/
    logfile "26379.log"
    
    // 当前Sentinel节点监控 192.168.119.10:6379 这个主节点
    // 2代表判断主节点失败至少需要2个Sentinel节点节点同意
    // mymaster是主节点的别名
    sentinel monitor mymaster 192.168.119.10 6379 2
    
    //每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
    sentinel down-after-milliseconds mymaster 30000
    
    //当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
    原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
    sentinel parallel-syncs mymaster 1
    
    //故障转移超时时间为180000毫秒
    sentinel failover-timeout mymaster 180000
    

    redis-26380.conf

    port 7000
    
    daemonize yes
    
    dir "/opt/data"
    
    logfile "7000.log"
    
    dbfilename "dump-7000.rdb"
    
    cluster-enabled yes   
    
    cluster-config-file nodes-7000.conf
    
    cluster-require-full-coverage no
    

    redis-26381.conf

    三个配置文件,仅仅是端口的不同,通过命令快速生成配置文件

    [root@master sbredis]# sed "s/26379/26380/g"  redis-26379.conf   >  redis-26380.conf  
    
    [root@master sbredis]# sed "s/26379/26381/g"  redis-26379.conf   >  redis-26381.conf  
    

    6.分别启动三个哨兵

    [root@master sbredis]# redis-sentinel redis-26379.conf 
    
    [root@master sbredis]# redis-sentinel redis-26380.conf 
    
    [root@master sbredis]# redis-sentinel redis-26381.conf 
    

    7.检测哨兵,主从状态

    redis-cli -p 26379  info sentinel
    

    看到如下信息,就和我一样了

    [root@master sbredis]# redis-cli -p 26379  info  sentinel
    
    Sentinel
    
    sentinel_masters:1
    
    sentinel_tilt:0
    
    sentinel_running_scripts:0
    
    sentinel_scripts_queue_length:0
    
    sentinel_simulate_failure_flags:0
    
    master0:name=s17ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
    

    8.测验,干掉master redis,是否自动切换

        ps -ef|grep redis
        kill 进程
        ..
    

    9.再次启动redis 6379 查看它是否加入 主从集群

    redis-server redis-6379.conf
    

    OK~

  • 相关阅读:
    DOM对象和JQuery对象的区别
    处理android手机html5页面中,点击text文本框无法自动获取焦点的处理方法
    ORACLE之VBO-5530无法删除用户的解决办法
    当oracle clob类型不能和group by并用,但是需要去除多列重复
    Android 4主线程访问网络
    Android: How to get Address from geolocation using Geocoder
    解决乱码的最后方法
    tomcat启动时自动运行代码
    android 组件隐蔽显示状态
    android模拟器Genymotion 连接eclipse项目
  • 原文地址:https://www.cnblogs.com/konghui/p/10533790.html
Copyright © 2011-2022 走看看