docker 多机分布式安装redis集群

分布式安装redis集群


序号 主机
1 192.168.1.10
2 192.168.1.11
3 192.168.1.12

共搭建六个节点,每台主机一主一从

分别在每台主机上创建主从配置文件
mkdir -p /data/redis-cluster
# 创建主redis配置
touch /data/redis-cluster/redis01.conf
cat << EOF > /data/redis-cluster/redis01.conf
port 6381 
bind 192.168.1.10 # bind 为宿主机IP
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
masterauth test123456
requirepass test123456
cluster-announce-ip 192.168.1.10 # 同是宿主机IP
cluster-announce-port 6381
cluster-announce-bus-port 16381
EOF

# 创建从redis配置
touch /data/redis-cluster/redis02.conf
cat << EOF > /data/redis-cluster/redis02.conf
port 6382
bind 192.168.1.10
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
masterauth test123456
requirepass test123456
cluster-announce-ip 192.168.1.10 
cluster-announce-port 6381
cluster-announce-bus-port 16381
EOF

在不同主机创建redis容器
# 192.168.1.10 node01 node02
docker run -p 6381:6381 --name redis-node01 \
-v /data/redis-cluster/redis01.conf:/etc/redis/redis.conf \
--net host --restart=always \
-d redis:6.2 redis-server /etc/redis/redis.conf

docker run -p 6382:6382 --name redis-node02 \
-v /data/redis-cluster/redis02.conf:/etc/redis/redis.conf \
--net host --restart=always \
-d redis:6.2 redis-server /etc/redis/redis.conf

# 192.168.1.11 node01 node02
docker run -p 6381:6381 --name redis-node01 \
-v /data/redis-cluster/redis01.conf:/etc/redis/redis.conf \
--net host --restart=always \
-d redis:6.2 redis-server /etc/redis/redis.conf


docker run -p 6382:6382 --name redis-node02 \
-v /data/redis-cluster/redis02.conf:/etc/redis/redis.conf \
--net host --restart=always \
-d redis:6.2 redis-server /etc/redis/redis.conf

# 192.168.1.12 node01 node02
docker run -p 6381:6381 --name redis-node01 \
-v /data/redis-cluster/redis01.conf:/etc/redis/redis.conf \
--net host --restart=always \
-d redis:6.2 redis-server /etc/redis/redis.conf

docker run -p 6382:6382 --name redis-node02 \
-v /data/redis-cluster/redis02.conf:/etc/redis/redis.conf \
--net host --restart=always \
-d redis:6.2 redis-server /etc/redis/redis.conf

Could not connect to Redis at 192.168.1.10:6381: Connection refused
--net host 在不同主机搭建redis集群的话,就需要添加该配置。不然无法找到redis其他主机上的集群

搭建redis集群

在任一主机redis容器内使用命令创建集群

docker exec -it redis-node01 /bin/bash
#  -a test123456 redis设置密码之后需要指定密码
redis-cli --cluster create 192.168.1.18:6381 192.168.1.18:6382 192.168.1.83:6381 192.168.1.83:6382 192.168.1.182:6381 192.168.1.182:6382 --cluster-replicas 1 -a test123456
# 选项 填yes 
Can I set the above configuration? (type 'yes' to accept): yes
# 查看集群状态
redis-cli -c -h 192.168.1.10 -p 6381 -a test123456
cluster nodes

posted @ 2022-06-01 16:40  海中明月  阅读(369)  评论(0编辑  收藏  举报