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

 

posted @ 2020-03-25 17:32  sxFu9528  阅读(200)  评论(0编辑  收藏  举报