- 近来疫情仍然是不可小觑,所以希望各位小伙伴仍然相应号召,在家办公自我隔离。
- 希望各位小伙伴在这样的情况下平平安安,一切都会好起来的。
- 今天我们来说一说Redis的其中一种部署方式——哨兵模式。
- 下面呢我们会讲解如何手动配置哨兵模式,同样的我会附上自己开发的自动化部署脚本,希望对大家有所裨益。
- 在Redis的部署方式中,我们比较常用的有三种:单机(主从)、集群、哨兵。
- 根据场景的不同,我们会选择不同的部署方式,主从哨兵更能保证数据安全不丢失。
- 有小伙伴可能会问了,我们直接主从配置就可以了呀,为什么还要费劲加入哨兵节点呢?
- Redis 的主从复制模式,一旦主节点出现故障无法提供服务,需要人工介入手工将从节点调整为主节点,同时应用端还需要修改新的主节点地址。
- 也就是说,如果不加入哨兵节点,那我们就要充当“哨兵”了,而且还不是很尽职尽责哨兵。
- 定期检测主从数据节点以及其他哨兵节点是否可用。
- 将上一步中检测出来的结果通知到应用方,方便应用实现切换。
- 主从节点的故障转移,即若主节点不可用,则晋升其一从节点为主节点供应用使用。
准备工作
- 我们这里以一台系统为Centos 7的云服务器为例,小伙伴们可自行选择。
- 下载好redis-5.0.5.tar.gz,大家自行到官方下载安装即可,安装过程我就不做详细的介绍啦。
- 因为我们做测试用嘛,就不开那么多服务器来做,我们在一台服务器上多个端口启动redis实例。
Redis各节点简单配置保证可用
- 我们规定一下端口:6379(主),6380、6381(从),26379、26380、26381(哨兵)
- 根据不同端口我们创建以下目录并复制配置文件:
$ mkdir -p /etc/redis/{6379,6380,6381,26379,26380,26381}
# 批量复制redis配置
$ echo /etc/redis/6* | xargs -n 1 cp -v /redis安装路径/redis.conf
# 批量复制哨兵配置
$ echo /etc/redis/26* | xargs -n 1 cp -v /redis安装路径/sentinel.conf
- 修改主节点配置vim /etc/redis/6379/redis.conf:
# 后台运行
daemonize yes
# 运行端口
port 6379
# 主节点密码
masterauth 123456
# 当前节点密码
requirepass 123456
protected-mode yes
# 绑定IP 0.0.0.0代表所有IP可访问
bind 0.0.0.0
- 两个从节点的配置与主节点配置基本相同vim /etc/redis/6380/redis.conf:
daemonize yes
# 从节点IP
## port 6381
port 6380
masterauth 123456
requirepass 123456
protected-mode yes
bind 0.0.0.0
# 属于那个主节点
slaveof 127.0.0.1 6379
- 修改哨兵节点配置vim /etc/redis/26379/sentinel.conf
# 后台运行
daemonize yes
# 哨兵节点端口26379、26380、26381
port 26379
# 主节点信息
sentinel monitor mymaster 127.0.0.1 6379 2
# 主节点密码
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 15000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 80000
bind 0.0.0.0
protected-mode yes
- 接下来就按照:主——从——哨兵启动各节点即可
$ redis-server /etc/redis/6379/redis.conf
$ redis-server /etc/redis/6380/redis.conf
$ redis-server /etc/redis/6381/redis.conf
$ redis-sentinel /etc/redis/26379/sentinel.conf
$ redis-sentinel /etc/redis/26380/sentinel.conf
$ redis-sentinel /etc/redis/26381/sentinel.conf
- 关于应用方面我们该篇不做详细的介绍,大家如果在应用方面有什么问题都可以问我,我尽我所能帮大家解答。
- 为了方便我自己的应用,我同时开发了自动化部署Redis的简单脚本。
- 在脚本中,我仅支持了Redis的单机部署以及主从哨兵模式。
- 为了节省服务器成本,主从哨兵部署方式为每台服务器运行一个redis节点以及一个哨兵节点。
- 对于集群方式我这边很少用到,所以没有对集群做支持,后续考虑加入。
- 更多信息以及源码需要大家查看更多啦,欢迎大家帮忙点点star。
- 以后相关源代码我都会在这里进行发布,欢迎大家多多关注!!!。
- 大家拉取代码后进入目录Centos_RedisAutoInstall中,修改配置文件config
# 本机内网IP
IP=10.0.4.16
## 1:HOST 2:CLUSTER 3:SENTINEL
## 2暂不支持
REDIS_TYPE=1
REDIS_PORT=6379
REDIS_SENTINEL_PORT=26379
# 主节点IP
REDIS_MASTER=10.0.4.16
REDIS_PASS=Hanshow123!@#
- 配置完成后运行同目录中的redis.sh即可进行Redis的自动安装以及配置,对于配置文件大家如果有什么不理解的地方都可以提出来。
- 后面我会把自己开发的常用的脚本都分享出来,希望大家可以多多关注star哦。
- 同样的如果大家有任何问题,可以随时提出来,我会竭尽全力帮大家解决哦。
- 最后依然希望大家相应国家号召进行自我隔离,保障自己的生命安全。
- 谢谢大家,下次见。