极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

0 环境

0.1 主机系统:CentOS 7.5

极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

0.2 Redis版本:5.0.0 以上

1 准备阶段

1.1 安装 docker

1.1.1 安装所需的软件包

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

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

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

1.1.3 安装docker ce(docker社区版-必须-版本会新一点)

$ sudo yum install -y docker-ce

2018年12月28日安装的版本:
极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

1.2 启动 docker

$ systemctl start docker

1.3 设置docker 开机自启

$ systemctl enable docker

1.4 开放需要的端口

$ firewall-cmd --permanent --zone=public --add-port=7000-7005/tcp
$ firewall-cmd --permanent --zone=public --add-port=17000-17005/tcp
$ firewall-cmd --reload  //重新加载配置
$ firewall-cmd --permanent --zone=public --list-ports  //查看开放的端口

1.5 获取 redis 镜像

$ docker pull redis

docker images 查看镜像
极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

2 创建 redis 容器

2.1 创建 redis 的配置文件

在 /home 下新建 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.1.157
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes

命令查看配置:

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

极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

2.2 创建自定义 docker network

$ docker network create redis-net

2.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配置文件

2.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个容器信息
docker ps 查看容器
极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

3 集群(redis 5.0 安装集群方法) 方法一:

3.1 分别查看各容器 IP

$ docker inspect redis-7000 redis-7001 redis-7002 redis-7003 redis-7004 redis-7005 | grep IPAddress

效果如图:
极简 redis 5 安装 redis-cluster 集群(不需要Ruby)

3.2 随便进入一个已运行的容器

$ docker exec -it redis-7000 bash

3.3 在容器中执行集群命令

/usr/local/bin/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

输入命令后,中间需要输入 yes 确认。可以得到下面的信息说明集群成功了
极简 redis 5 安装 redis-cluster 集群(不需要Ruby)
参考文档:https://www.cnblogs.com/lianggp/p/8136222.html