
下面是一个用于搭建 Redis 集群的 docker-compose.yml 示例文件,它会启动 6 个 Redis 节点(3 主节点 + 3 从节点)来构成一个最小的 Redis 集群。
同一个容器内网通讯没问题,但是你要是需要暴露到外网你需要用第二个yml
内网的
version: '3.8'
services:
redis-node1:
image: redis:7.0
container_name: redis-node1
command: ["redis-server", "--port", "6379", "--cluster-enabled", "yes", "--cluster-config-file", "nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--cluster-announce-ip", "redis-node1", "--cluster-announce-port", "6379", "--cluster-announce-bus-port", "16379"]
ports:
- "6379:6379"
- "16379:16379"
volumes:
- ./data/redis-node1:/data
networks:
- redis-cluster
redis-node2:
image: redis:7.0
container_name: redis-node2
command: ["redis-server", "--port", "6379", "--cluster-enabled", "yes", "--cluster-config-file", "nodes.conf", "--cluster-node-timeout", "5000", "--appendonly", "yes", "--cluster-announce-ip", "redis-node2", "--cluster-announce-port", "6379", "--cluster-announce-bus-port", "16379"]
ports:
- "6380:6379"
- "16380:16379"
volumes:
- ./data/redis-node2:/data
networks:
- redis-cluster
redis-node3:
image: redis:7.0
container_name: redis-node3
command: ["redis-server", "--port", "6379", "--cluster-enabled", "yes", "--cluster-config-file", "nodes.conf", "--cluster-node-timeout", "5000",