docker-compose 创建redis集群测试
侧边栏壁纸
  • 累计撰写 49 篇文章
  • 累计收到 0 条评论

docker-compose 创建redis集群测试

admin
2021-12-16 / 0 评论 / 491 阅读 / 正在检测是否收录...

先写一个通用的 redis.conf 配置要点如下:

bind 0.0.0.0 #将绑定ip设置为 0.0.0.0 ,即不绑定ip
appendonly yes #开启持久化
cluster-enabled yes #开启集群
cluster-config-file nodes.conf #集群配置文件(这个在后面搭建的时候,会自动生成,不用管,这样写就对了)
cluster-node-timeout 15000 #节点超时时间

建立各种文件夹,目录结构如下

mkdir -p ~/docker/redis/r1/data

将上一步的 redis.conf 放到 ~/docker/redis/r1 目录下

cp redis.conf ~/docker/redis/r1

复制6个r1 文件夹

cd ~/docker/redis
cp -r r1 r2
cp -r r1 r3
cp -r r1 r4
cp -r r1 r5
cp -r r1 r6

进入 redis1 容器

docker exec -it redis1 /bin/bash

然后进入 redis1 的 redis

redis-cli -h redis1

将所有节点 都加入到 集群

cluster meet 192.168.88.11 6379
cluster meet 192.168.88.12 6379
cluster meet 192.168.88.13 6379
cluster meet 192.168.88.14 6379
cluster meet 192.168.88.15 6379
cluster meet 192.168.88.16 6379

查看 集群节点

cluster nodes

记录 3 个 主 master 的 节点标识

主(Master)    标识
654cf8ff01d8442c8ca126537e193b365dcf34d2 192.168.88.11:6379@16379 myself,master - 0 1639642417000 3 connected 0-5461
ba793b92f620d36925c51f9269c0523c30c19a33 192.168.88.14:6379@16379 master - 0 1639642418000 4 connected
cf11e46a4bb1aed1035fca9e79efc33db81162d0 192.168.88.15:6379@16379 master - 0 1639642418521 0 connected
2a791d2e6cf619612402544c57e33bcb7053a85c 192.168.88.13:6379@16379 master - 0 1639642417516 2 connected 10923-16383
c243a676e148caf8b3186fba8577e8c7e198e833 192.168.88.16:6379@16379 master - 0 1639642416000 5 connected
176957eb8a28c67c27752e120c8f38e6bd6804e9 192.168.88.12:6379@16379 master - 0 1639642417000 1 connected 5462-10922

修改slaves脚本(addslots.sh)

# 需要用到 从 redis 到IP 与 主redis 的节点标识
# 从 redis4 主 redis1
redis-cli -h 192.168.88.14 CLUSTER REPLICATE 654cf8ff01d8442c8ca126537e193b365dcf34d2
# 主 redis5 从 redis2
redis-cli -h 192.168.88.15 CLUSTER REPLICATE 176957eb8a28c67c27752e120c8f38e6bd6804e9
# 主 redis6 从 redis3
redis-cli -h 192.168.88.16 CLUSTER REPLICATE 2a791d2e6cf619612402544c57e33bcb7053a85c

先执行 addslots.sh 再执行 slaves.sh, 先给下权限

chmod -R 755 addslots.sh slaves.sh
./addslots.sh
./slaves.sh

查看集群情况和节点信息

docker exec -it redis1 /bin/bash
redis-cli -h redis1
cluster info
cluster nodes
0

评论 (0)

取消