docker快速构建三主三从 redis-cluster
一、节点规划(三主三从)
| 容器名称 | 容器IP地址 | 映射端口号 | | —- | —- | —- |
| redis-master1 | 172.20.0.2 | 6391->6391 |
| redis-master2 | 172.20.0.3 | 6392->6392 |
| redis-master3 | 172.20.0.4 | 6393->6393 |
| redis-slave-1 | 172.30.0.2 | 6394->6394 |
| redis-slave-2 | 172.30.0.3 | 6395->6395 |
| redis-slave-3 | 172.30.0.4 | 6396->6396 |
二、下载文件
将redis-cluster文件夹 拷贝到 /data/docker下
三、开始构建
1、构建镜像
docker build -t redis-cluster /data/docker/redis-cluster
2、快速构建多个容器
docker-compose up -d
注:安装docker-compose
3、使用docker ps -a 查看结果
教程地址:使用 docker-compose 构建 redis-cluster 集群
需要进入任意redis容器中
docker exec -it redis-master1 bash
在/usr/bin目录下 执行下面命令
-- 如果执行报错 给redis-trib.rb设置可执行权限 chmod a+x redis-trib.rb
./redis-trib.rb create --replicas 1 192.168.200.151:6391 192.168.200.151:6392 192.168.200.151:6393 192.168.200.151:6394 192.168.200.151:6395 192.168.200.151:6396
-- 弹出提示信息 输入yes
在/usr/bin目录下 执行下面命令 使用客户端访问redis集群
./redis-cli -c -h 192.168.200.151 -p 6391
通过设置key观察变化:
使用keys * 只能查看当前集群下的key
查看集群中所有的key
redis-cli -c --cluster call 172.20.0.1:6392 keys \*
四、集群常用的命令
redis-cli -h 192.168.200.152 -p 6392 cluster info
redis-cli -h 192.168.200.152 -p 6392 cluster NODES
CLUSTER INFO // 打印集群的信息
CLUSTER NODES // 列出集群当前已知的所有节点(node),以及这些节点的相关信息。
//节点
CLUSTER MEET // 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。
CLUSTER FORGET // 从集群中移除 node_id 指定的节点。
CLUSTER REPLICATE // 将当前节点设置为 node_id 指定的节点的从节点。
CLUSTER SAVECONFIG // 将节点的配置文件保存到硬盘里面。
CLUSTER ADDSLOTS [slot ...] // 将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER DELSLOTS [slot ...] // 移除一个或多个槽对当前节点的指派。
CLUSTER FLUSHSLOTS // 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
CLUSTER SETSLOT NODE // 将槽 slot 指派给 node_id 指定的节点。
CLUSTER SETSLOT MIGRATING // 将本节点的槽 slot 迁移到 node_id 指定的节点中。
CLUSTER SETSLOT IMPORTING // 从 node_id 指定的节点中导入槽 slot 到本节点。
CLUSTER SETSLOT STABLE // 取消对槽 slot 的导入(``import``)或者迁移(migrate)。
//键
CLUSTER KEYSLOT // 计算键 key 应该被放置在哪个槽上。
CLUSTER COUNTKEYSINSLOT // 返回槽 slot 目前包含的键值对数量。
CLUSTER GETKEYSINSLOT // 返回 count 个 slot 槽中的键。
//新增
CLUSTER SLAVES node-id // 返回一个master节点的slaves 列表