Redis主从Sentinel监控配置

摘要:
当实例Adown丢失时,Sentinel将选择B和C中的一个实例作为新的主节点提供服务,其余节点将自动成为新主节点的从节点,以实现灾难恢复备份。整个服务IP通过与Sentinel交互获得。至少需要3个Sentinel实例才能启用Sentinel模式。问题2:在主设备关闭后,从设备不会升级为主设备。

一、Linux下安装Redis

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

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

Redis主从Sentinel监控配置第1张

1、安装gcc环境

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

Redis主从Sentinel监控配置第2张

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

Redis主从Sentinel监控配置第3张

Redis主从Sentinel监控配置第4张

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目录下。

Redis主从Sentinel监控配置第5张

Redis主从Sentinel监控配置第6张

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

Redis主从Sentinel监控配置第7张

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

Redis主从Sentinel监控配置第8张

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

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

Redis主从Sentinel监控配置第9张

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

Redis主从Sentinel监控配置第10张

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

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

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

Redis主从Sentinel监控配置第11张

4、启动redis服务

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

Redis主从Sentinel监控配置第12张

Redis主从Sentinel监控配置第13张

Redis主从Sentinel监控配置第14张

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

Redis主从Sentinel监控配置第15张

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.127001

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

mkdirsentinel-tmp

touch sentinel.conf

vim sentinel.conf

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

daemonizeyes

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

Redis主从Sentinel监控配置第16张

Redis主从Sentinel监控配置第17张

问题:

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

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

可能原因:

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

Redis主从Sentinel监控配置第18张

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

免责声明:文章转载自《Redis主从Sentinel监控配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Swift MD5加密还原数据库出错:”因为数据库正在使用,所以无法获得对数据库的独占访问权“的解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。 1. 数据库自增长序列或字段 最常见的方式。利用数据库,全数据库唯一。 优点: 1)简单,代码方便,性能可以接受。 2)数字ID天然排序,...

git flow常用命令

https://danielkummer.github.io/git-flow-cheatsheet/index.zh_CN.html https://blog.csdn.net/shu580231/article/details/76240611 https://blog.csdn.net/zpcqdkf/article/details/82621893...

Redis 新特性---pipeline(管道)

转载自http://weipengfei.blog.51cto.com/1511707/1215042 Redis本身是一个cs模式的tcp server, client可以通过一个socket连续发起多个请求命令。 每个请求命令发出后client通常会阻塞并等待redis服务端处理,redis服务端处理完后将结果返回给client。 redis的pipe...

git常见问题汇总

1:强制将本地 master分支 同步成 远程服务器的master分支: git fetch -p git checkout -B master origin/master 2:refs/for与refs/heads的区别: refs/for需要进行Review,refs/heads不需要 3:push的时候直接添加topic: git push...

SpringBoot结合ShardingSphere实现分库分表、读写分离

这次在上一篇的基础上,这次用到4个库,将库db0、db1各增加一个从库dbS0dbS1 四个库再执行脚本: -- ------------------------------ Table structure for `user0`-- ----------------------------DROP TABLE IF EXISTS `user0`;CRE...

redis配置文件redis.conf详解

redis-server启动时就需要一个redis.conf配置文件,所以要设置不同的redis-server,就必须要了解配置文件中的各个内容。这里罗列了一些配置,在文件中顺序从上至下。 1.单位对大小写不敏感 2.可以包含多个配置文件,将其他配置文件的内容放在该配置文件里 3.网络(重点)设置绑定的ip。 指定ip可以访问到redis服务,若配置集...