docker redis4.0集群搭建

自闭症网瘾萝莉.ら 提交于 2019-12-04 13:34:59

一、前言

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

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

 

环境说明

采用单机部署

操作系统 ip docker版本 redis版本
centos 7.6 192.168.31.150

19.03.5

4.0.10

 

 

 

 

二、准备镜像

docker pull redis:4.0.10
docker pull ruby

说明:ruby用是来做加入集群的用的,仅一次使用。

 

三、搭建

创建redis配置文件

mkdir -p /data/redis-cluster
vi /data/redis-cluster/redis-cluster.tmpl

内容如下:

port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.31.150
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly no

注意:ip地址修改为本机ip

 

配置文件解释

port ${PORT}                        ##节点端口
protected-mode no                   #关闭protected-mode模式,外部网络可以直接访问
cluster-enabled yes                 ##cluster集群模式
cluster-config-file nodes.conf      ##集群配置名
cluster-node-timeout 5000           ##超时时间
cluster-announce-ip 192.168.31.150  ##实际为各节点网卡分配ip  先用上网关ip代替
cluster-announce-port ${PORT}       ##节点映射端口
cluster-announce-bus-port 1${PORT}  ##节点总线端
appendonly no                      ##持久化模式

 备注:此模版文件为集群节点通用文件 其中${PORT} 将读取命令行变量

 

创建自定义network

docker network create redis-net

 

生成配置文件

生成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配置文件

 

创建容器

创建6个redis容器

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

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

 

 

 

 

本文参考链接:
https://www.cnblogs.com/lianggp/articles/8136222.html
https://blog.csdn.net/qq_22211217/article/details/80436996

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!