要在Docker中搭建Redis集群,可以按照以下步骤进行操作:
创建Docker网络:在终端中运行以下命令创建一个新的Docker网络。
docker network create redis-net
创建Redis主节点容器:运行以下命令创建3个Redis主节点容器。
docker run -d --name redis-master1 --net redis-net -p 7001:6379 redis:latest redis-server --appendonly yes --requirepass "password"
docker run -d --name redis-master2 --net redis-net -p 7002:6379 redis:latest redis-server --appendonly yes --requirepass "password"
docker run -d --name redis-master3 --net redis-net -p 7003:6379 redis:latest redis-server --appendonly yes --requirepass "password"
这将创建3个Redis容器并将它们连接到redis-net网络中。每个容器都运行在不同的端口上,并使用--requirepass
参数设置了密码为"password"。
创建Redis从节点容器:运行以下命令创建3个Redis从节点容器。
docker run -d --name redis-slave1 --net redis-net -p 7004:6379 redis:latest redis-server --appendonly yes --requirepass "password" --slaveof redis-master1 6379
docker run -d --name redis-slave2 --net redis-net -p 7005:6379 redis:latest redis-server --appendonly yes --requirepass "password" --slaveof redis-master2 6379
docker run -d --name redis-slave3 --net redis-net -p 7006:6379 redis:latest redis-server --appendonly yes --requirepass "password" --slaveof redis-master3 6379
这将创建3个Redis从节点容器,并使用--slaveof
参数将它们连接到对应的Redis主节点。
创建Redis哨兵容器:运行以下命令创建3个Redis哨兵容器。
docker run -d --name redis-sentinel1 --net redis-net -p 26379:26379 redis:latest redis-sentinel --sentinel announce-ip <IP地址> --sentinel announce-port 26379 --sentinel monitor mymaster redis-master1 6379 2
docker run -d --name redis-sentinel2 --net redis-net -p 26380:26379 redis:latest redis-sentinel --sentinel announce-ip <IP地址> --sentinel announce-port 26379 --sentinel monitor mymaster redis-master2 6379 2
docker run -d --name redis-sentinel3 --net redis-net -p 26381:26379 redis:latest redis-sentinel --sentinel announce-ip <IP地址> --sentinel announce-port 26379 --sentinel monitor mymaster redis-master3 6379 2
这将创建3个Redis哨兵容器,并使用--sentinel
参数将它们配置为监视对应的Redis主节点。
注意:在以上命令中,需要将<IP地址>
替换为主机的IP地址。
验证集群搭建:通过Redis客户端连接到任意一个主节点容器,并执行CLUSTER NODES
命令来验证集群搭建是否成功。
docker exec -it redis-master1 redis-cli -a "password"
127.0.0.1:6379> CLUSTER NODES
如果成功搭建了Redis集群,将会看到各个节点的信息。
以上步骤将在Docker中搭建一个包含3个主节点、3个从节点和3个哨兵节点的Redis集群。