超详细的Redis哨兵搭建指南,快快收藏吧!

     

一、前言

什么是Redis哨兵?

Redis哨兵,即Redis Sentinel,从Redis 2.8版本开始引入。它的主要作用就是主节点的自动故障转移。接下来,我们一起通过docker镜像方式来快速部署哨兵。

二、服务器配置

本次演示环境使用3台服务器来搭建Redis高可用集群,采用一主两从三哨兵模式,服务器配置如下所示。

服务器IP 服务器配置 备注
10.129.12.4 16C32G CentOS7.2 X64 master
10.129.12.5 16C32G CentOS7.2 X64 slave1
10.129.12.6 16C32G CentOS7.2 X64 slave2

三、Redis集群搭建

1、搭建一主两从

1.1 下载Redis镜像

1.1.1 离线导入

可通过其他装有redis镜像的服务器上导出,通过ftp上传至自己的服务器进行加载。

## 1、从其他装有redis镜像的服务器上导出镜像包
docker save -o redis.tar redis:latest

## 2、通过FTP将镜像包上传至服务器

## 3、加载镜像包
docker load -i redis.tar

1.1.2 在线下载

docker pull redis

1.2 安装Redis

在三台服务器上分别创建/usr/local/redis/conf以及/usr/local/redis/data目录,用来存放配置文件以及落盘数据。在conf目录创建redis.conf,主从节点内容配置分别如下:

1.2.1 master配置文件

bind 0.0.0.0

# 关闭保护模式
protected-mode no

#端口
port 63790

#主节点也需要设置主节点的授权密码,因为角色会发生转变
masterauth redis_pwd
requirepass redis_pwd

#主节点不开启持久化
appendonly no

#关闭rdb
save ""

1.2.2 slave1配置文件

bind 0.0.0.0

# 关闭保护模式
protected-mode no

#端口
port 63790

#主节点也需要设置主节点的授权密码,因为角色会发生转变
masterauth redis_pwd
requirepass redis_pwd

#改成你的master的ip port
slaveof 10.129.12.4 63790

#设置优先级,值越低优先级越高
slave-priority 90

#不开启AOF
appendonly no

#关闭rdb
save ""

1.2.3 slave2配置文件

bind 0.0.0.0

# 关闭保护模式
protected-mode no

#端口
port 63790

#主节点也需要设置主节点的授权密码,因为角色会发生转变
masterauth redis_pwd
requirepass redis_pwd

#改成你的master的ip port
slaveof 10.129.12.4 63790

#设置优先级,值越低优先级越高
slave-priority 100

#开启AOF
appendonly yes

#备份频率
appendfsync everysec

备注:因本次涉及定时任务同步缓存数据,为保证服务器性能,只保留了10.129.12.6这台机器开启AOF以及RDB对数据进行落盘,其他两个都关闭。

1.2.4 运行容器

分别在三台机器上按主从顺序依次启动容器

docker run -d --name redis -p 63790:63790 --privileged=true --restart=always 
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf 
-v /usr/local/redis/data:/data 
redis:latest redis-server /etc/redis/redis.conf --requirepass "redis_pwd"

1.3 查看集群状态

在主节点机器上,进入redis容器并开启客户端,执行info命令查看主节点信息,如下所示。

超详细的Redis哨兵搭建指南,快快收藏吧!

可以看到rolemaster,说明当前是主节点。并且看到有两个从节点10.129.12.510.129.12.6

在从节点机器上,同样通过info命令查看从节点信息,如下所示。

超详细的Redis哨兵搭建指南,快快收藏吧!

可以看到roleslave,说明当前是从节点;同时可以看到主节点为10.129.12.4,端口号63790

其中从节点还有一个重要的属性:master_link_status,如果为up则说明主从配置是OK的,如果为down则说明有问题。首先排查下主节点端口是否被限制导致从节点连接失败,可通过关闭防火墙或放开主节点端口进行验证;再就是主从节点配置文件中的密码要保持一致。

1.4 验证主从复制

可以在主节点上写入一个key-value值,然后在任意从节点上查询这个key的值,如果能查到且与主节点value值一致则说明主从同步成功。

主节点 :

超详细的Redis哨兵搭建指南,快快收藏吧!

从节点:

超详细的Redis哨兵搭建指南,快快收藏吧!

2、配置三哨兵

2.1 安装哨兵

2.1.1 配置文件

分别在三台机器的/usr/local/redis/conf目录下面创建sentinel.conf文件,配置内容如下:

port 26379
dir /tmp
sentinel announce-ip 10.129.12.4  ## 各个节点对应自己的ip
sentinel announce-port 26380      ## 端口号都配置为26380
sentinel monitor mymaster 10.129.12.4 63790 2   ## 监控的主节点mymaster
sentinel auth-pass mymaster redis_pwd ## 密码
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes

2.2.2 启动容器

分别在三台机器上执行docker run命令来启动容器。

docker run -d --name redis-sentinel -p 26380:26379 --privileged=true 
-v /usr/local/redis/conf/sentinel.conf:/usr/local/redis/sentinel.conf 
redis:latest redis-sentinel /usr/local/redis/sentinel.conf

2.2 验证故障转移

为了验证哨兵模式下的主从自动切换,我们将当前主节点10.129.12.4这台机器的redis关掉,稍等几秒钟后查看另外两台机器,进入redis容器内启动客户端执行info命令,验证是否有一台从节点的角色自动变成主节点。经过验证10.129.12.5这台的role变成了master,说明主从切换成功!


超详细的Redis哨兵搭建指南,快快收藏吧!

原文始发于微信公众号(Java浩窍门):超详细的Redis哨兵搭建指南,快快收藏吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/244526.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!