咨询:在Ubuntu 20上用Docker搭建3节点Redis集群的方法
使用Docker在多节点搭建Redis集群
步骤1:在每个节点上启动Redis集群节点容器
在3个目标节点上分别执行以下命令(替换<节点IP>为当前节点的实际IP地址):
docker run -d --name redis-cluster-node \ -p 6379:6379 -p 16379:16379 \ --sysctl net.core.somaxconn=1024 \ redis:latest redis-server \ --cluster-enabled yes \ --cluster-config-file nodes.conf \ --cluster-node-timeout 5000 \ --appendonly yes \ --bind 0.0.0.0
6379是Redis客户端连接端口,16379是集群节点间通信的总线端口,必须确保这两个端口在所有节点的防火墙中开放--cluster-enabled yes开启集群模式--appendonly yes开启AOF持久化,避免容器重启丢失数据
步骤2:初始化Redis集群
选择任意一个节点(比如IP为192.168.1.10的节点),进入容器执行集群创建命令,替换以下命令中的IP为你的三个节点实际IP:
docker exec -it redis-cluster-node redis-cli --cluster create \ 192.168.1.10:6379 \ 192.168.1.11:6379 \ 192.168.1.12:6379 \ --cluster-replicas 0
--cluster-replicas 0表示创建3个主节点的集群(无从节点),如果需要主从结构,可以将值改为1(此时需要至少6个节点,3主3从),根据你的需求调整- 执行命令后会提示确认集群配置,输入
yes完成初始化
步骤3:验证集群状态
在任意节点执行以下命令检查集群健康状态:
docker exec -it redis-cluster-node redis-cli --cluster check 192.168.1.10:6379
也可以进入Redis客户端查看集群信息:
docker exec -it redis-cluster-node redis-cli -c 127.0.0.1:6379> cluster info
注意事项
- 确保所有节点之间能互相访问(ping通对方的6379和16379端口)
- 如果需要持久化数据,建议挂载本地目录到容器的
/data目录,在docker run命令中添加-v /your/local/path:/data参数 - 若使用Docker的自定义网络,需确保所有容器在同一网络下,且节点IP能被其他容器解析
内容的提问来源于stack exchange,提问作者syed adeeb
相关产品推荐
相关产品推荐

