docker redis4.0 集群(cluster)搭建

10 篇文章 3 订阅
9 篇文章 0 订阅

docker redis4.0 集群(cluster)搭建

本文转自:docker redis4.0 集群(cluster)搭建

前言

 redis集群对于很多人来说非常熟悉,在前些日子,我也有一位大兄弟也发布过一篇关于在阿里云(centOS7)上搭建redis 集群的文章,虽然集群搭建的文章在网上很多,我比较喜欢这篇文章的地方是他在搭建过程中,指出一些我们会遇到而别人没有指出的问题。

  在这里,我同样带给大家一遍关于阿里云(centOS7)redis集群搭建的文章,但是这次搭建有所不同的是,它是在docker上搭建的redis集群。

准备工具

一、安装docker(来自官网)

1、安装所需的软件包

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

2、使用以下命令来设置稳定的存储库。

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3、安装docker ce(docker社区版)

$ sudo yum install docker-ce

4、启动docker

$ sudo systemctl start docker

二、在docker库获取redis镜像(截至2017-12-28,最新版为4.0.6)

$ docker pull redis

三、在docker库获取ruby镜像

$ docker pull ruby

至此,docker上redis cluster所有工具准备完毕,我们在命令行上输入docker images,就可以查看到已经安装的镜像(注:mysql和nginx是无关本教程的)

搭建

一、创建redis容器

1、创建redis配置文件(redis-cluster.tmpl)

我在路径/home下创建一个文件夹redis-cluster,在路径/home/redis-cluster下创建一个文件redis-cluster.tmpl,并把以下内容复制过去。(注:路径可自定义,我用的是/home/redis-cluster)

复制代码

port ${PORT}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 39.10X.XX.XX //自己服务器IP
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

通过命令,可查看

$ cat /home/redis-cluster/redis-cluster.tmpl

2、创建自定义network

$ docker network create redis-net

3、在/home/redis-cluster下生成conf和data目标,并生成配置信息

$ for port in `seq 7000 7005`; do \
  mkdir -p ./${port}/conf \
  && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \
  && mkdir -p ./${port}/data; \
done

共生成6个文件夹,从7000到7005,每个文件夹下包含data和conf文件夹,同时conf里面有redis.conf配置文件

4、创建6个redis容器

$ for port in `seq 7000 7005`; do \
  docker run -d -ti -p ${port}:${port} -p 1${port}:1${port} \
  -v /home/redis-cluster/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v /home/redis-cluster/${port}/data:/data \
  --restart always --name redis-${port} --net redis-net \
  --sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done

至此,通过命令docker ps可查看刚刚生成的6个容器信息

二、集群

通过启动ruby来实现集群

$ echo yes | docker run -i --rm --net redis-net ruby sh -c '\
  gem install redis \
  && wget http://download.redis.io/redis-stable/src/redis-trib.rb \
  && ruby redis-trib.rb create --replicas 1 \
  '"$(for port in `seq 7000 7005`; do \
    echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port} ' ' ; \
  done)"

输入命令后,可以得到下面的信息说明集群成功了

注意点

  1、注意redis配置信息的路径

  2、以上的代码都是centOS命令行上输入的

  3、阿里云上要添加安全组,除了7000-7005端口,还要开放17000-17005端口

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为在阿里云上搭建 Docker Redis 集群,您可以按照以下步骤进行操作: 1. 创建阿里云 ECS 实例:首先,登录阿里云控制台,创建至少3个 ECS 实例作为 Redis 集群的节点。确保这些实例之间可以通过内网IP相互通信。 2. 安装 Docker:在每个 ECS 实例上安装 Docker。您可以参考阿里云官方文档提供的方法来完成安装。 3. 创建 Docker 网络:使用以下命令在每个 ECS 实例上创建一个 Docker 网络: ```shell docker network create redisnet ``` 4. 下载 Redis 镜像:在每个 ECS 实例上执行以下命令,下载 Redis 镜像: ```shell docker pull redis ``` 5. 运行 Redis 容器:在每个 ECS 实例上执行以下命令,启动 Redis 容器,并加入到之前创建的 Docker 网络中: ```shell docker run -d --name redis1 --net redisnet redis docker run -d --name redis2 --net redisnet redis docker run -d --name redis3 --net redisnet redis ``` 这将分别在每个 ECS 实例上启动3个 Redis 容器。 6. 配置 Redis 集群:在任一 ECS 实例上执行以下命令,配置 Redis 集群: ```shell docker exec -it redis1 redis-cli --cluster create <节点1IP:端口> <节点2IP:端口> <节点3IP:端口> --cluster-replicas 1 ``` 请将 `<节点1IP:端口>`、 `<节点2IP:端口>`、 `<节点3IP:端口>` 替换为您实际的 ECS 实例的 IP 地址和 Redis 运行端口。 7. 验证 Redis 集群:您可以执行以下命令验证 Redis 集群是否正常工作: ```shell docker exec -it redis1 redis-cli cluster info ``` 如果一切正常,您应该能够看到有关 Redis 集群的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值