1. 搭建
- 下载redis 镜像
- 编写redis 配置
- 创建redis 容器
- 创建redis cluster 集群
2. 编写redis 配置文件
- 创建目录
[root@root ~]# mkdir -p /soft/redis/redis-cluster
- 目录下 编写 redis-cluster.tmpl
port ${
PORT}
requirepass root
masterauth root
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 192.168.220.133
cluster-announce-port ${
PORT}
cluster-announce-bus-port 1${
PORT}
# 2. 第二胎虚拟机改下ip
- 执行端口文件
# 1. 第一台linux
for port in `seq 6371 6373`; do \
mkdir -p ${
port}/conf \
&& PORT=${
port} envsubst < redis-cluster.tmpl > ${
port}/conf/redis.conf \
&& mkdir -p ${
port}/data; \
done
# 2. 第二台 虚拟机
for port in `seq 6374 6376`; do \
mkdir -p ${
port}/conf \
&& PORT=${
port} envsubst < redis-cluster.tmpl > ${
port}/conf/redis.conf \
&& mkdir -p ${
port}/data; \
done
3 . 创建redis 容器
将主机6371-6376 之间的端口和 redis 容器映射,已经主机目录进行挂载 并指定网路模式 为 host
# 1. 机器1
for port in $(seq 6371 6373); do \
docker run -di --restart always --name redis-${
port} --net host \
-v /soft/redis/redis-cluster/${
port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /soft/redis/redis-cluster/${
port}/data:/data \
redis redis-server /usr/local/etc/redis/redis.conf; \
done
# 2. 机器2
for port in $(seq 6374 6376); do \
docker run -di --restart always --name redis-${
port} --net host \
-v /soft/redis/redis-cluster/${
port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /soft/redis/redis-cluster/${
port}/data:/data \
redis redis-server /usr/local/etc/redis/redis.conf; \
done
4. 创建redis 集群
随便进入一个redis 容器节点 并进入 /usr/local/bin 目录
# 1. 进入容器
docker exec -it redis-6374 bash
# 2 . 进入目录
cd /usr/local/bin
# 3. 执行集群指令
redis-cli -a root --cluster create 192.168.220.132:6371 192.168.220.132:6372 192.168.220.132:6373 192.168.220.133:6374 192.168.220.133:6375 192.168.220.133:6376 --cluster-replicas 1
# 4. 检查集群状态
redis-cli -a root --cluster check 192.168.220.132:6371
# 5. 集群模式设置 -c -a 用户
redis-cli -c -p 6374 -a root
- 创建OK
- 报错需要停止防火墙
systemctl disable firewalld
systemctl stop firewalld
- 检查集群状态