zoukankan      html  css  js  c++  java
  • Redis主从Sentinel监控配置

    一、 Linux下安装Redis

    官网下载链接:https://redis.io/download

    把下载好的安装包传到指定目录,本示例是redis4.0版本,安装目录为/opt/app。

    1、安装gcc环境

    由于redis是由C语言编写的,它的运行需要C环境,因此我们需要先安装gcc。安装命令如下:

    进入到/opt/app/redis-4.0.0目录下,进行编译与安装

    2、为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中(根据自己的习惯而定)

    1)在/opt/app/redis-4.0.0目录下创建bin和etc文件夹

    2)将/opt/app/redis-4.0.0目录下的redis.conf文件移动到刚创建的etc文件夹下,将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-cli、redis-server 移动到刚创建的bin目录下。

    3、进入到/opt/app/redis-4.0.0/etc目录下,编辑 redis.conf配置文件,设置后台启动redis服务

    1)把文件中的daemonize属性改为yes(表明需要在后台运行)

     

    2)编辑 redis.conf配置文件,开启redis远程访问服务(根据自己需求而定)

     redis.conf配置文件中的 bind 127.0.0.1 这一行给注释掉,这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。

     redis.conf配置文件中的 protected-mode 设置成no(默认是设置成yes的, 防止了远程访问,在redis3.2.3版本后)

     

    编辑 redis.conf配置文件,修改Redis默认密码 (默认密码为空)

    1)在配置文件中找到这一行 # requirepass foobared

    2)删除前面的注释符号#,并把foobared修改成自己的密码  或者  另起一行 requirepass 自己的密码

     

    4、启动redis服务

    切换到/opt/app/redis-4.0.0/bin/目录下执行 redis-server 命令,使用/opt/app/redis-4.0.0/etc/redis.conf配置文件来启动redis服务。

     

     

     5、打开RedisDesktopManager,测试服务是否开启 以及 是否可以远程访问Redis

    Redis的整个安装过程到此结束。

    二、 Redis一主二从Sentinel监控配置

    Redis部署方式采用主备的方式,通过Redis自带的工具Sentinel来对Redis集群进行管理,并实现主备自动切换功能。

    正常工作时,实例A为集群中master机器,由A面向Client提供服务,B和C为A的slave节点,在正常工作期间同步A的数据信息。当实例A down掉之后,会有Sentinel在B和C中选举出一个实例,成为新的master来提供服务,剩下的节点自动成为新master的slave节点,实现融灾备份。整个服务IP的获取通过与Sentinel交互来获得。

    开启哨兵模式,至少需要3个Sentinel实例。

    例通过3个Sentinel实例监控3个Redis服务(1主2从)。

    IP地址           节点角色&端口

    10.225.X.12 Master:7001 / Sentinel : 27001

    10.225.X.13 Slave :7001 / Sentinel : 27001

    10.225.X.14 Slave :7001 / Sentinel : 27001

    10.225.X.1310.225.X.14redis.conf配置中添加一行

    slaveof 10.225.X.12 7001

    10.225.X.1210.225.X.1310.225.X.14 /opt/app/redis-4.0.0目录下创建sentinel配置文件(单例安装后根目录下默认有sentinel.conf,可以先备份默认的配置)

    cd /opt/app/redis-4.0.0

    mkdir sentinel-tmp

    touch sentinel.conf

    vim sentinel.conf

    sentinle.conf配置文件内容,三台机器相同

    daemonize yes

    port 27001

    protected-mode no

    dir " /opt/app/redis-4.0.0/sentinel-tmp "

    sentinel monitor redis-master 10.225.X.12 7001 2

    sentinel down-after-milliseconds redis-master 30000

    sentinel failover-timeout redis-master 180000

    sentinel parallel-syncs redis-master 1

    3台机器上分别启动Redis和Sentinel

    ./redis-server ../etc/redis.conf

    cd /opt/app/redis-4.0.0/src

    nohup ./redis-sentinel ../sentinel.conf

    3台机器上查看集群状态:

    redis> info replication

    问题:

    问题1:slave可以显示master信息,而master没有slave信息。

    问题2:master宕机后slave没有被提升为master。

    可能原因:

    master信息配置不正确;需要配置auth-pass。

    【参考资料:https://gper.club/articles/7e7e7f7ff7g5egc7g6a

  • 相关阅读:
    openpyxl模块介绍 ——读取excel表格
    openpyxl模块介绍 ——创建excel表格 ——并写入数据
    csv文件——读和遍历csv文件
    openpyxl模块介绍 ——原有excel表格中创建sheet ——并写入数据
    遍历目录
    c# 反转,新手看
    缩写
    对象、类和结构
    c# Outlook 收发邮件
    C#中接口的作用
  • 原文地址:https://www.cnblogs.com/sxFu/p/12567579.html
Copyright © 2011-2022 走看看