zoukankan      html  css  js  c++  java
  • redis哨兵模式

    哨兵简介

    哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的 master并将所有slave连接到新的master。

    哨兵的作用

    监控

      不断的检查master和slave是否正常运行。

      master存活检测、master与slave运行情况检测

    通知(提醒)

      当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。

    自动故障转移

      断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服 务器地址

    注意: 哨兵也是一台redis服务器,只是不提供数据服务 通常哨兵配置数量为单数

    启用哨兵模式

    配置一拖二的主从结构

    master配置(redis-6379.conf)

    port 6379
    daemonize no
    #logfile "log_6379.log"
    dir ./data
    save 60 2
    stop-writes-on-bgsave-error yes
    rdbcompression yes
    rdbchecksum yes
    dbfilename "dump-6379.rdb"
    
    appendonly yes
    appendfsync always
    appendfilename "appendonly-6379.aof"
    bind 127.0.0.1
    View Code

    slave配置(redis-6380.conf、redis-6381.conf)

    port 6380
    daemonize no
    #logfile "log_6380.log"
    dir ./data
    slaveof 127.0.0.1 6379 
    View Code

    通过以下命令快速将redis-6380.conf内容复制到redis-6381.conf中,并将内容中包含的6380改为6381

    sed 's/6380/6381/g' redis-6380.conf > redis-6381.conf

    启动服务

    redis-server redis-config/redis-6379.conf
    
    redis-server redis-config/redis-6380.conf
    
    redis-server redis-config/redis-6381.conf

    配置三个哨兵(配置相同,端口不同)

    将redis解压目录下sentinel.conf内容过滤并复制到指定目录下

    cat sentinel.conf |grep -v "#" | grep -v "^$" > /usr/local/bin/redis-config/sentinel-26379.conf

    查看

    [root@localhost redis-config]# cat sentinel-26379.conf 
    port 26379
    daemonize no
    #pidfile /var/run/redis-sentinel-26379.pid #以守护进程方式运行时,系统默认会把pid写入/var/run/redis-sentinel-26379.pid
    #logfile "" #以守护进程方式运行时,log文件的路径
    dir /tmp
    sentinel monitor mymaster 127.0.0.1 6379 2
    sentinel down-after-milliseconds mymaster 30000
    acllog-max-len 128
    sentinel parallel-syncs mymaster 1
    sentinel failover-timeout mymaster 180000
    sentinel deny-scripts-reconfig yes
    SENTINEL resolve-hostnames no
    SENTINEL announce-hostnames no

    通过以下命令快速创建文件,将源文件的内容替换为指定内容并复制创建的文件中

    [root@localhost redis-config]# sed 's/26379/26380/g' sentinel-26379.conf > sentinel-26380.conf
    [root@localhost redis-config]# sed 's/26380/26381/g' sentinel-26380.conf > sentinel-26381.conf

    启动哨兵

    启动哨兵前,先将主从服务启动

    定位到sentinel-26379.conf所在目录下

    redis-sentinel sentinel-26379.conf
    
    redis-sentinel sentinel-26380.conf
    
    redis-sentinel sentinel-26381.conf

    测试

    master服务停止(Ctrl + C)

  • 相关阅读:
    058:表关系之一对一
    057:表关系之一对多
    056:ORM外键删除操作详解
    055:ORM外键使用详解
    054:Meta类中常见配置
    053:Field的常用参数详解:
    052:ORM常用Field详解(3)
    051:ORM常用Field详解(2)
    C#中在WebClient中使用post发送数据实现方法
    C# WebClient类上传和下载文件
  • 原文地址:https://www.cnblogs.com/WarBlog/p/15329307.html
Copyright © 2011-2022 走看看