- 配置说明
- 主要两台服务器,一台部署3个服务
- 使用host网络
- 主节点ip:192.168.127.140
- 从节点ip:192.168.127.142 - 启动服务
- 在140服务器中
- 主服务编写配置文件
mkdir /etc/redis/conf && vi /etc/redis/conf/redis-cluster.conf
protected-mode no dir ./ requirepass 123456 # 是否启动集群 cluster-enabled yes
- 启动主服务
docker run --name redis01 --net host \ -v /home/redis/redis01/data:/data \ -v /etc/redis/conf:/etc/redis \ -d redis redis-server /etc/redis/redis-cluster.conf \ --port 6379 --cluster-config-file redis-node1.conf
docker run --name redis02 --net host \ -v /home/redis/redis02/data:/data \ -v /etc/redis/conf:/etc/redis \ -d redis redis-server /etc/redis/redis-cluster.conf \ --port 6380 --cluster-config-file redis-node2.conf
docker run --name redis03 --net host \ -v /home/redis/redis03/data:/data \ -v /etc/redis/conf:/etc/redis \ -d redis redis-server /etc/redis/redis-cluster.conf \ --port 638 --cluster-config-file redis-node3.conf
- 切换142服务器,继续重复上述操作
- 主服务编写配置文件
- 组成网络、分配槽位、连接主从
- 切换140服务器
docker exec -it redis01 /bin/bash
redis-cli --cluster create 192.168.127.140:6379 192.168.127.140:6380 192.168.127.140:6381 192.168.127.142:6379 192.168.127.142:6380 192.168.127.142:6381 --cluster-replicas 1 -a 123456
命令 说明 cluster-replicas 每个主节点有多少从节点 - 验证
redis-cli -a 123456
响应如下:CLUSTER NODES
bb59f72c5d47b4216eb610e53febef97ab2478e1 192.168.127.142:6380@16380 slave 51f27c9c5e7b7cf423f135f93586606742134976 0 1681377235067 2 connected 440fbf48413d998462a367658952c9dde7ff2ebc 192.168.127.142:6379@16379 master - 0 1681377234000 4 connected 5461-10922 851a1c153e8843f8d10850e7fc5a79d932515cd5 192.168.127.140:6381@16381 slave 440fbf48413d998462a367658952c9dde7ff2ebc 0 1681377236069 4 connected 51f27c9c5e7b7cf423f135f93586606742134976 192.168.127.140:6380@16380 master - 0 1681377234000 2 connected 10923-16383 f5fbf56ffd39a4fe35954dc24525829b0f7268a8 192.168.127.140:6379@16379 myself,master - 0 1681377234000 1 connected 0-5460 ec2ed3f9ce25fda6a61630af6bb3f109c9272d6b 192.168.127.142:6381@16381 slave f5fbf56ffd39a4fe35954dc24525829b0f7268a8 0 1681377235000 1 connected
- 在140服务器中
- 扩容
- 切换140服务器,启动2个服务
docker run --name redis04 --net host \ -v /home/redis/redis04/data:/data \ -v /etc/redis/conf:/etc/redis \ -d redis redis-server /etc/redis/redis-cluster.conf \ --port 6382 --cluster-config-file redis-node4.conf
docker run --name redis05 --net host \ -v /home/redis/redis05/data:/data \ -v /etc/redis/conf:/etc/redis \ -d redis redis-server /etc/redis/redis-cluster.conf \ --port 6383 --cluster-config-file redis-node5.conf
- 切换142服务器,执行上述命令
- 切换140服务器,完成扩容,添加主节点
docker exec -it redis01 /bin/bash
redis-cli --cluster add-node 192.168.127.140:6382 192.168.127.140:6379 -a 123456
redis-cli --cluster add-node 192.168.127.142:6382 192.168.127.140:6379 -a 123456
- 重新分片
redis-cli --cluster reshard 192.168.127.140:6379 --cluster-from f5fbf56ffd39a4fe35954dc24525829b0f7268a8,51f27c9c5e7b7cf423f135f93586606742134976,440fbf48413d998462a367658952c9dde7ff2ebc --cluster-to 0bfac40ea5c0fb3fcc9c1fbd234ca399734939cc --cluster-slots 200 -a 123456
redis-cli --cluster reshard 192.168.127.140:6379 --cluster-from f5fbf56ffd39a4fe35954dc24525829b0f7268a8,51f27c9c5e7b7cf423f135f93586606742134976,440fbf48413d998462a367658952c9dde7ff2ebc --cluster-to 60b94120e0b5e65ae6cde1423ef6aec615b5c72b --cluster-slots 200 -a 123456
- 平衡哈希
redis-cli --cluster rebalance 192.168.127.140:6379 -a 123456
- 添加从节点
redis-cli --cluster add-node 192.168.127.140:6382 192.168.127.140:6379 --cluster-slave 0bfac40ea5c0fb3fcc9c1fbd234ca399734939cc -a 123456
redis-cli --cluster add-node 192.168.127.142:6383 192.168.127.140:6379 --cluster-slave 60b94120e0b5e65ae6cde1423ef6aec615b5c72b -a 123456
- 重新分片
- 验证
- 删除节点
- 注意先备份数据
- 删除命令
redis-cli --cluster del-node 192.168.127.140:6382 7df8b73159bda081552b827de6e1d0695df02307 -a 123456
Redis-基于docker构建集群
于 2023-04-13 17:27:32 首次发布
该文详细介绍了如何在两台服务器上使用Docker部署Redis集群,包括配置文件设置、启动服务、创建集群、主从节点分配、槽位分配、扩容及节点管理等操作。在扩容过程中,新添加了两个主节点,并进行了哈希槽的重新分布和平衡。
摘要由CSDN通过智能技术生成