共计 3056 个字符,预计需要花费 8 分钟才能阅读完成。
本文基于 Docker + Redis 5.0.5 版本,通过 cluster 形式创立一个 6 个 redis 实例的主从集群,当然文章会指出相应的参数阐明,这样即使是创立 9 个实例的集群形式也是一样的。
1、拉取 Redis 镜像
基于 Redis:5.0.5 版本,执行如下指令:
docker pull redis:5.0.5
2、创立 6 个 Redis 容器
创立 6 个 Redis 容器:
- redis-node1:6379
- redis-node2:6380
- redis-node3:6381
- redis-node4:6382
- redis-node5:6383
- redis-node6:6384
执行命令如下:
docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379
docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380
docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381
docker create --name redis-node4 --net host -v /data/redis-data/node4:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382
docker create --name redis-node5 --net host -v /data/redis-data/node5:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383
docker create --name redis-node6 --net host -v /data/redis-data/node6:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384
局部参数解释:
- –cluster-enabled:是否启动集群,选值:yes、no
- –cluster-config-file 配置文件.conf:指定节点信息,主动生成
- –cluster-node-timeout 毫秒值:配置节点连贯超时工夫
- –appendonly:是否开启长久化,选值:yes、no
执行命令截图:
3、启动 Redis 容器
执行命令如下:
docker start redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 redis-node6
启动截图如下:
4、组建 Redis 集群
进入任意一个 Redis 实例:
# 这里以 redis-node1 实例为例
docker exec -it redis-node1 /bin/bash
执行组件集群的命令:
# 组建集群,10.211.55.4 为以后物理机的 ip 地址
redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 10.211.55.4:6383 10.211.55.4:6384 --cluster-replicas 1
执行命令截图如下:
创立胜利后,通过 redis-cli 查看一下集群节点信息:
root@CentOS7:/data# redis-cli
127.0.0.1:6379> cluster nodes
执行命令截图如下:
4、对于 Redis 集群搭建
咱们再回到创立集群的命令上:
redis-cli --cluster create 10.211.55.4:6379~6384 --cluster-replicas 1
大家着重看这个参数 –cluster-replicas 1,参数前面的数字示意的是主从比例,比方这里的 1 示意的是主从比例是 1:1,什么概念呢?
也就是 1 个主节点对应几个从节点,现有 6 个实例,所以主从调配就是 3 个 master 主节点,3 个 slave 从节点。
主节点起码 3 个,3 个能力保障集群的健壮性。
如果 –cluster-replicas 2 呢?
那么主从比例就是 1:2,也就是 1 个主节点对于应 2 个从节点。
即:3(master) + 6(slave) = 9 个 Redis 实例。
如果有余 9 个 Redis 实例,然而参数指定为 2 会怎么样?
报错信息如下:
提醒曾经很分明了,Redis 集群至多须要 3 个主节点。那么从节点就须要有 6 个,所以最初说:至多须要 9 个节点。
好的,至多 3 个主节点的要求我不持续刚了,然而我想 4 个主节点,2 个从节点,这总该能够了吧?
4 个主节点满足你:
# 进入一个启动的 reids 实例,这里以 redis-node1 实例为例
docker exec -it redis-node1 /bin/bash
执行组建集群的命令:
redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 --cluster-replicas 0
指定 4 个没有从节点的主节点,这样你就有 4 个主节点了:
剩下的两个从节点怎么办呢?手动增加。
怎么增加?手动增加!
看到这些 master 节点的 id 了吗,只须要把 slave 指定给他们就能够了。
继续执行如下命令:
redis-cli --cluster add-node 10.211.55.4:6383 10.211.55.4:6379 --cluster-slave --cluster-master-id b0c32b1dae9e7b7f7f4b74354c59bdfcaa46f30a
redis-cli --cluster add-node 10.211.55.4:6384 10.211.55.4:6379 --cluster-slave --cluster-master-id 111de8bed5772585cef5280c4b5225ecb15a582e
将两个 Redis 实例塞给其余主节点了:
最初咱们进入 redis-cli,通过 cluster nodes 查看一下节点信息:
看到这,你学废了吗?
原文链接:https://www.cnblogs.com/nicey…
如果感觉本文对你有帮忙,能够点赞关注反对一下