在docker上运行redis cluster集群

redis版本:5.0.3(官方镜像)

官方推荐3master3slaver
1.新建/data{1,6}六个空文件文件夹,redis.conf 文件,start镜像运行脚本


image.png

如图上的/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了就不管

你可能感兴趣的:(在docker上运行redis cluster集群)