docker搭建Redis cluster集群,完全无坑笔记

docker搭建Redis cluster集群,完全无坑笔记。

环境:Linux虚拟机Centos7.0

1. 安装docker

- 1.1 安装所需的软件包
yum install -y yum-utils  device-mapper-persistent-data lvm2
- 1.2 设置稳定的存储库
yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo
- 1.3 安装docker-ce(docker社区版-必须-版本会新一点)
# 如果下载速度太慢,ctrl+c退出安装,重新执行安装命令
yum install -y docker-ce
- 1.4 启动docker并设置为开机启动
systemctl start docker
systemctl enable docker
- 1.5 检查是否安装成功,查看docker版本
docker -v

在这里插入图片描述

- 1.5 开放需要的端口(此次安装用如下接口)
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

2. 安装redis

- 2.1 创建redis镜像
docker pull redis
- 2.2 查看redis镜像
docker images

在这里插入图片描述

- 2.3 创建redis cluster容器

2.3.1 创建redis容器集群文件夹

#路径可自定义,如果自定义路径,后面用到此路径的命令也需要修改
mkdir -p /home/redis-cluster    

2.3.2 创建redis的配置文件redis.conf模板文件

vim redis-cluster.tmpl

插入如下内容,wq退出且保存

##节点端口
port ${PORT}
##开启集群模式
protected-mode no
##cluster集群模式
cluster-enabled yes 
##集群配置名                               
cluster-config-file nodes.conf
##超时时间 
cluster-node-timeout 5000
##集群的中各个容器的ip地址
cluster-announce-ip 192.168.31.57
##节点映射端口
cluster-announce-port ${PORT}
##节点总线端口
cluster-announce-bus-port 1${PORT}
##持久化模式
appendonly yes

cluster-announce-ip 参数设置为容器所在的物理机虚拟机的ip,我们是在一台虚拟机上搭建redis集群所以ip都一样

2.3.3 在/home/redis-cluster下生成redis的conf和dat目录,并生成redis.conf配置文件

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

创建完成如下图,每个文件下面都有data和conf目录

docker搭建Redis cluster集群,完全无坑笔记_第1张图片

2.1.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 host \
--sysctl net.core.somaxconn=1024 redis redis-server /usr/local/etc/redis/redis.conf; \
done

2.1.5 查询看正在运行的6个redis容器

docker ps

在这里插入图片描述

- 3.1 创建redis cluster

3.1.1 随便进入一个redis容器

docker exec -it redis-7000 bash

3.1.2 创建cluster

#此处的ip对应每个容器的ip,本次这6个redis容器的ip都为物理主机ip
redis-cli --cluster create 192.168.31.57:7000 192.168.31.57:7001 192.168.31.57:7002 192.168.31.57:7003 192.168.31.57:7004 192.168.31.57:7005 --cluster-replicas 1

成功显示如下:

docker搭建Redis cluster集群,完全无坑笔记_第2张图片
docker搭建Redis cluster集群,完全无坑笔记_第3张图片
至此,redis cluster 集群已经创建好了。

如果要删除镜像,执行如下命令

for port in `seq 7000 7005`; do \
  docker stop redis-${port};
  docker rm redis-${port};
done 

你可能感兴趣的:(数据库,redis,分布式集群,cluster)