在阿里云服务器上通过docker部署redis cluster

在阿里云服务器上通过docker部署redis cluster

0. 环境

  • centos7(内核版本高于3.10)

1. 安装docker

直接通过脚本安装

$ sudo yum update
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

启动docker

$ sudo systemctl start docker

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

1. 获取redis容器

$ sudo docker pull redis

2. 准备配置文件及数据文件夹

2.1 编写配置文件模板

redis-cluster.tmpl:

port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip XXX.XXX.XXX.XXX # 这里是你的服务器外网ip
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
logfile "redis.log"
2.2 创建6个redis cluster的节点
for port in `seq 7010 7015`; do \
mkdir -p ${port}/data; \
mkdir -p ${port}/conf; \
PORT=${port} envsubst < redis-cluster.tmpl; \
done
2.3 创建完成后的目录结构:

在这里插入图片描述

3. 启动docker

$ for port in `seq 7010 7015`; do \
sudo docker run --name redis-${port} --net host \
-v $PWD/${port}/data:/data \
-v $PWD/${port}/conf/redis.conf:/etc/redis/redis.conf \
--restart always \
--sysctl net.core.somaxconn=1024 \
-d redis redis-server /etc/redis/redis.conf; \
done

这里为什么–net host ,在redis官网有解释redis官网

4. 创建集群

  • 由于redis5.0创建集群的工具已经继承在了redis-cli中,先通过docker命令进入任意一个节点中
$ sudo docker exec -it redis-7010 /bin/bash
  • 通过redis-cli命令创建集群,其中XXX.XXX.XXX.XXX必须为你的服务器外网ip
$ redis-cli --cluster create XXX.XXX.XXX.XXX:7010 XXX.XXX.XXX.XXX:7011 XXX.XXX.XXX.XXX:7012 XXX.XXX.XXX.XXX:7013 XXX.XXX.XXX.XXX:7014 XXX.XXX.XXX.XXX:7015 --cluster-replicas 1
  • 创建成功
    在这里插入图片描述

5. 注意事项

5.1 其中 --net host 是必须的,表示使用本机网络环境

5.2 配置文件中 cluster-announce-bus-port 1${PORT} 也是需要的,在官网有解释(在docker环境下的时候,每个节点需要知道自己的ip和端口,还要指定总线端口)

5.3 在阿里云服务器上必须开启7010-7015, 17010-17015,不然建立集群也会失败

5.4 创建集群和配置文件中的XXX.XXX.XXX.XXX必须为服务器外网ip

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值