转载:Docker Redis5.0集群

转载:Docker Redis5.0集群

一、容器准备

​ 从Docker Hub拉取Redis镜像。

docker pull redis:tag #将tag换成具体的版本tag,本教程基于redis5以上版本

二、准备配置文件 redis-cluster.tmpl

​ 在服务器创建redis-cluster目录,在目录下创建redis-cluster.tmpl文件,需要将cluster-announce-ip换成自己的公网IP,内容如下。

port ${PORT}
protected-mode no
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

至此已经创建文件${your path}/redis-cluster/redis-cluster.tmpl

三、创建redis配置文件

​ 在刚创建的redis-cluster目录下执行创建创建配置文件批处理命令。

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

四、创建集群的network

docker network create redis-net

五、启动Redis容器

​ 执行命令启动容器,需要将${your path}替换成你的真实路径,将${tag}换成你的镜像版本号。

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

六、搭建集群

1、得到集群网络中的容器ip地址

for port in `seq 7000 7005`; do \
    echo -n "$(docker inspect --format '{{ (index .NetworkSettings.Networks "redis-net").IPAddress }}' "redis-${port}")":${port} ' ' ; \
done

得到如:172.18.0.2:7000 172.18.0.3:7001 172.18.0.4:7002 172.18.0.5:7003 172.18.0.6:7004 172.18.0.7:7005

2、创建集群

Redis 5.0搭建集群已经弃用了ruby,而是直接使用redis-cli来创建集群。

​ 进入其中一个Redis容器。

docker exec -it redis-7005 /bin/bash

​ 执行集群命令,注意需要用到上一步得到的IP地址

redis-cli --cluster create 172.18.0.2:7000  172.18.0.3:7001  172.18.0.4:7002  172.18.0.5:7003  172.18.0.6:7004  172.18.0.7:7005 --cluster-replicas 1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容