redis版本:5.0.3(官方镜像)
官方推荐3master3slaver
1.新建/data{1,6}六个空文件文件夹,redis.conf 文件,start镜像运行脚本
如图上的/data文件夹内的文件是运行后自动生成的,当前不需要处理。
redis.conf内容:
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
requirepass 123456
密码可以不用;start.sh 内容如下:
docker run --rm --name redi -p 6379:6379 \
-p 16379:16379 \
-v \$PWD/data:/data \
-v $PWD/redis.conf:/usr/local/etc/redis/redis.conf \
-d redis redis-server /usr/local/etc/redis/redis.conf
docker run --rm --name redi1 -p 6380:6379 \
-p 16380:16379 \
-v $PWD/redis.conf:/usr/local/etc/redis/redis.conf \
-v $PWD/data1:/data \
-d redis redis-server /usr/local/etc/redis/redis.conf
docker run --rm --name redi2 -p 6381:6379 \
-p 16381:16379 \
-v $PWD/data2:/data \
-v $PWD/redis.conf:/usr/local/etc/redis/redis.conf \
-d redis redis-server /usr/local/etc/redis/redis.conf
docker run --rm --name redi3 -p 6382:6379 \
-p 16382:16379 \
-v $PWD/data3:/data \
-v $PWD/redis.conf:/usr/local/etc/redis/redis.conf \
-d redis redis-server /usr/local/etc/redis/redis.conf
docker run --rm --name redi4 -p 6383:6379 \
-p 16383:16379 \
-v $PWD/data4:/data \
-v $PWD/redis.conf:/usr/local/etc/redis/redis.conf \
-d redis redis-server /usr/local/etc/redis/redis.conf
docker run --rm --name redi5 -p 6384:6379 \
-p 16384:16379 \
-v $PWD/data5:/data \
-v $PWD/redis.conf:/usr/local/etc/redis/redis.conf \
-d redis redis-server /usr/local/etc/redis/redis.conf
运行docker ps 看下是不是正常启动了,正常启动后运行docker exec -it redi bash
进入容器内部:redis-cli -a 123456 --cluster create 你的本机IP:6379 你的本机IP:6380 你的本机IP:6381 你的本机IP:6382 你的本机IP:6383 你的本机IP:6384 --cluster-replicas 1
这时候如果能够返回"OK ALL 16384 slots covered"就表示处理好了
如果"waiting for the cluster to join ..."时间太长的话,就CLTR+C打断命令,输入修复命令
redis-cli --cluster fix 你的IP:6379
redis-cli --cluster fix 你的IP:6380
redis-cli --cluster fix 你的IP:6381
redis-cli --cluster fix 你的IP:6382
redis-cli --cluster fix 你的IP:6383
redis-cli --cluster fix 你的IP:6384
等修复完成后就应该可以了,在本地redis-cli连接然后进行写操作看下
以上操作可能有冗余,但我不想再排查了,it works了就不管