Docker安装Redis集群(3主3从原生安装)

1、配置开启Redis

port 6391
daemonize no
dir "/data"
logfile "redis.log"
dbfilename "dump.rdb"
cluster-enabled yes
cluster-config-file nodes-6391.conf
cluster-require-full-coverage no

2、开启6个节点

#redis集群总线端口为redis客户端端口加上10000
docker run -d -p 6391:6391 -p 16391:16391 -v /root/redis/c1/redis.conf:/etc/redis/redis.conf -v /root/redis/c1/data:/data:rw --name redis-6391 4760dc956b2d redis-server /etc/redis/redis.conf

docker run -d -p 6392:6392 -p 16392:16392 -v /root/redis/c2/redis.conf:/etc/redis/redis.conf -v /root/redis/c2/data:/data:rw --name redis-6392 4760dc956b2d redis-server /etc/redis/redis.conf

docker run -d -p 6393:6393 -p 16393:16393 -v /root/redis/c3/redis.conf:/etc/redis/redis.conf -v /root/redis/c3/data:/data:rw --name redis-6393 4760dc956b2d redis-server /etc/redis/redis.conf

docker run -d -p 6394:6394 -p 16394:16394 -v /root/redis/c4/redis.conf:/etc/redis/redis.conf -v /root/redis/c4/data:/data:rw --name redis-6394 4760dc956b2d redis-server /etc/redis/redis.conf

docker run -d -p 6395:6395 -p 16395:16395 -v /root/redis/c5/redis.conf:/etc/redis/redis.conf -v /root/redis/c5/data:/data:rw --name redis-6395 4760dc956b2d redis-server /etc/redis/redis.conf

docker run -d -p 6396:6396 -p 16396:16396 -v /root/redis/c6/redis.conf:/etc/redis/redis.conf -v /root/redis/c6/data:/data:rw --name redis-6396 4760dc956b2d redis-server /etc/redis/redis.conf

此时连接节点,set hello world还是会报错,因为集群并没有启动


节点.png

3、meet操作

选择一个节点,对其余节点执行meet操作

cluster meet  6392
cluster meet  6393
cluster meet  6394
cluster meet  6395
cluster meet  6396

4、分配槽

a、编写脚本:
addslots.sh

start=$1
end=$2
port=$3
for slot in `seq ${start} ${end}`
do
    echo "slot:${slot}"
    redis-cli -p ${port} cluster addslots ${slot}
done

让每一个docker容器运行脚本:

#6391
docker exec -d redis-6391 /bin/sh /data/addslots.sh 0 5461 6391
#6392
docker exec -d redis-6392 /bin/sh /data/addslots.sh 5462 10922 6392
#6393
docker exec -d redis-6393 /bin/sh /data/addslots.sh 10923 16383 6393

5、设置组从

#6394复制6391
redis-cli -p 6394 cluster replicate <6391的nodeid>
redis-cli -p 6395 cluster replicate <6392的nodeid>
redis-cli -p 6396 cluster replicate <6393的nodeid>

设置主从完成,一个3主3从的Redis集群就搭建完成了。

你可能感兴趣的:(Docker安装Redis集群(3主3从原生安装))