redis-cluster高可用集群实战(docker版本)

本文介绍了如何在Linux CentOS7环境下,利用docker和docker-compose搭建redis-cluster高可用集群。详细步骤包括环境准备、配置文件创建、端口开放、集群配置及常见问题解答,确保每个节点的正确设置和主从同步。


一、搭建环境

  • linux centos7
  • redis 5.0以上
  • docker
  • docker-compose

二、搭建

1、准备3台虚拟机,每一台都满足搭建环境

192.168.252.128
192.168.252.129
192.168.252.130

2、每一台机器创建/root/redis目录,在该目录下创建docker-compose构建脚本,redis-cluster.sh

3、根据脚本每一台虚拟机启动3个服务

192.168.252.128创建3个redis服务

192.168.252.128:7001
192.168.252.128:7002
192.168.252.128:7003

192.168.252.129创建3个redis服务

192.168.252.129:7001
192.168.252.129:7002
192.168.252.129:7003

192.168.252.130创建3个redis服务

192.168.252.130:7001
192.168.252.130:7002
192.168.252.130:7003

执行redis-cluster.sh脚本后,修改对应的redis配置文件,最后创建redis实例

# 开启集群模式,默认是关闭
cluster-enable yes
# 设置从节点访问主节点的密码
masterauth 123456
# 绑定地址,如果想让外网访问最好修改为ip地址
bind 192.168.252.130
# 保护模式,默认是开启,如果开启只能本机访问redis服务,如果想让其他机器访问建议关闭
protected-mode no
# 绑定端口号,默认6379
port 6379
# 登录密码,默认是注释掉的,建议开启
requirepass 123456
# 开启持久化功能,默认是关闭,建议打开,这样重启redis服务数据才不会清空
appendonly yes
# 持久化文件,用默认即可,无需修改
appendfilename "appendonly.aof"
# redis持久化数据目录,默认是当前redis服务所在目录,推荐修改
dir ./

4、开放防火墙,这一步非常重要。每一个redis服务的集群工作时通过我们配置的port+1000端口来实现(如,我们在redis.conf配置prot 7001 则集群服务端口为17001,7001+1000=17001),所以每一个redis服务都要开放本身的端口和集群服务端口。按如下例子来对所有redis服务开放端口,否则集群会失败

firewall-cmd --zone=public --add-prot 7001/tcp
firewall-cmd --zone=public --add-prot 17001/tcp

5、配置集群
(1) docker 安装redis,3台服务器都需要安装

docker exec -it redis-7001 bash

(2)用redis-cli来创建集群,在redis5.0之后官方推荐用这种方式来构建

redis-cli -a 123456  --cluster  create 192.168.252.128:7001 192.168.252.128:7002 192.168.252.129:7001 192.168.252.129:7002 192.168.252.130:7001 192.168.252.130:7002 --cluster-replicas 1
  • -a 设置登录密码
  • –cluster 设置当前操作模式为集群模式
  • create 创建集群,后面跟着需要加入集群的服务
  • –cluster-replicas 1 设置从节点的个数
    在这里插入图片描述
    (3)提示redis-cli给我们配置的方案,如果我们接受则输入“yes”回车,显示如下说明集群配置成功
    在这里插入图片描述

6、查看集群配置结果

(1)通过“redis-cli”进入集群的任何一个节点

redis-cli -a 123456 -h 192.168.252.128 -p 7001 -c
  • -c 表示启用集群模式

(2) 查看集群状态

cluster info

在这里插入图片描述
(3)查看节点的主从配置

cluster nodes

在这里插入图片描述
通过以上信息我们可以看出,本次集群有三个主节点和三个从节点。

(4) 查看当前节点的主从信息

info replication

在这里插入图片描述
显示以上信息说明集群搭建成功。

三、常见问题

  • 配置参数daemonize no,如果为“yes”docker将不能正常启动。默认为“no”
  • 如果配置了登录认证即,requirepass xxx 则必须配置masterauth xxx,否则集群时主从不能同步,因为从节点(通过masterauth来指定登录密码请求主节点时需要知道主节点的登录密码。
  • 防火墙没有开放相应端口,特别是集群服务端口,如,redis服务端口为:7001,则它的集群服务端口为:17001。(在服务端口前+1即可)
  • 设置集群前,待集群的节点的持久化数据和集群配置文件(nodes.conf)没有清空,需要清空后方可集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗德阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值