Redis-搭建哨兵集群

朱雀 2023-09-24 15:51 208阅读 0赞

目录

一.集群结构

二.准备实例和配置

  1. 创建目录

2.添加配置文件

3.修改端口

三.启动

1.启动redis服务

2.建立主从关系

3.启动哨兵

四.测试(图片参考)


此篇 redis 目录 在 /usr/redis-6.2.4 ,版本即为 6.2.4。

一.集群结构

这里我们搭建一个三节点形成的Sentinel集群,来监管之前的Redis主从集群。如图:

fb1e061dfff94af3a0561ba443e26a02.png

三个sentinel实例信息如下:
























节点 IP PORT
s1 192.168.1.100 27001
s2 192.168.1.100 27002
s2 192.168.1.100 27003

二.准备实例和配置

要在同一台虚拟机开启3个实例,必须准备三份不同的配置文件和目录,配置文件所在目录也就是工作目录。

1. 创建目录

我们创建三个文件夹,名字分别叫s1、s2、s3:

  1. # 创建/usr/redis目录
  2. mkdir /usr/redis
  3. # 进入到/usr/redis目录
  4. cd /usr/redis
  5. # 创建目录
  6. mkdir s1 s2 s3

2.添加配置文件

然后我们在s1目录创建一个sentinel.conf文件,

  1. #在 /usr/redis目录下执行
  2. vim s1/sentinel.conf

添加下面的内容:

  1. port 27001
  2. sentinel announce-ip 192.168.1.100
  3. sentinel monitor mymaster 192.168.1.100 7001 2
  4. sentinel down-after-milliseconds mymaster 5000
  5. sentinel failover-timeout mymaster 60000
  6. dir "/usr/redis/s1"

解读:

  • port 27001:是当前sentinel实例的端口
  • sentinel monitor mymaster 192.168.150.101 7001 2:指定主节点信息

    • mymaster:主节点名称,自定义,任意写
    • 192.168.150.101 7001:主节点的ip和端口
    • 2:选举master时的quorum值

然后将s1/sentinel.conf文件拷贝到s2、s3两个目录中(在/usr/redis目录执行下列命令):

  1. # 方式一:逐个拷贝
  2. cp s1/sentinel.conf s2
  3. cp s1/sentinel.conf s3
  4. # 方式二:管道组合命令,一键拷贝
  5. echo s2 s3 | xargs -t -n 1 cp s1/sentinel.conf

3.修改端口

修改s2、s3两个文件夹内的配置文件,将端口分别修改为27002、27003:

  1. sed -i -e 's/27001/27002/g' -e 's/s1/s2/g' s2/sentinel.conf
  2. sed -i -e 's/27001/27003/g' -e 's/s1/s3/g' s3/sentinel.conf

三.启动

1.启动redis服务

具体redis主从集群的搭建请查看Redis-主从集群

启动7001 7002 7003

  1. cd /usr/redis-6.2.4/src/
  2. # 第1个
  3. ./redis-server /usr/redis/7001/redis.conf
  4. # 第2个
  5. ./redis-server /usr/redis/7002/redis.conf
  6. # 第3个
  7. ./redis-server /usr/redis/7003/redis.conf

2.建立主从关系

  1. cd /usr/redis-6.2.4/src
  2. # 连接 7002
  3. redis-cli -p 7002
  4. # 执行slaveof
  5. slaveof 192.168.150.101 7001
  6. # 连接 7003
  7. redis-cli -p 7003
  8. # 执行slaveof
  9. slaveof 192.168.150.101 7001

3.启动哨兵

  1. cd /usr/redis-6.2.4/src/
  2. # 第1个
  3. ./redis-sentinel /usr/redis/s1/sentinel.conf
  4. # 第2个
  5. ./redis-sentinel /usr/redis/s2/sentinel.conf
  6. # 第3个
  7. ./redis-sentinel /usr/redis/s3/sentinel.conf

哨兵启动后的图片:

f46f53eccebb4ad18cd268c792fe1c8c.png

四.测试(图片参考)

尝试让master节点7001宕机,查看sentinel日志:ac11c46dd9874c2ea1007d2802637bcf.png

查看7003的日志:

b700293af4c04bd8b0e41a825144e90a.png

查看7002的日志:

64c2660192b944bca485b9af72ab9cd4.png

发表评论

表情:
评论列表 (有 0 条评论,208人围观)

还没有评论,来说两句吧...

相关阅读

    相关 redis 哨兵

    前言 在上一篇,我们了解了redis 复制集群的完整的搭建流程,本篇来分享一下如何搭建 redis 哨兵集群。 为什么需要哨兵集群 redis哨兵集群要解决的问题

    相关 Redis-哨兵

    目录 一.集群结构 二.准备实例和配置 1. 创建目录 2.添加配置文件 3.修改端口 三.启动 1.启动redis服务 2.建立主从关系 3.启动哨兵