Docker - 通过容器安装部署Redis教程2(Redis集群的搭建)
前文我演示了如何通过容器进行单 Redis 实例的部署(点击查看),但实际生产环境常常需要搭建 Redis 集群实现高可用,下面通过样例进行演示。
(2)执行 docker ps 命令确认容器是否启动成功。
(2)接着执行如下命令组建集群:
(3)上面命令执行过程中会提示确认,我们输入 yes 后会车即可:
(2)执行如下命令链接到集群上:
(3)然后执行如下命令查询集群节点信息:
(2)然后从其他节点再通过 get 获取该值,能够获取到则说明集群搭建成功:
二、Redis 集群的搭建
1,拉取镜像
首先执行如下命令将镜像下载到本地:
docker pull redis
2,启动容器
(1)执行如下命令实例化三个 redis 容器:参数说明:
- -d:表示在后台启动容器;
- --name redis-1:将容器命名为 redis-1
- --net host:为了实现从外部也能够访问到容器化部署的 Redis 服务,需要使用 host 模式的网络连接类型
- -v /usr/local/redis1/data:/data:挂载目录,其中 /usr/local/redis1/data 是宿主机的目录
- --requirepass "123456":将密码设置为 123456,如果不带该参数则表示没有密码
- --cluster-enabled yes:表示启用集群模式
- --port 6379:指定对外暴露的端口为 6379
docker run -d --name redis-1 --net host -v /usr/local/redis1/data:/data redis --requirepass "123456" --cluster-enabled yes --port 6379 docker run -d --name redis-2 --net host -v /usr/local/redis2/data:/data redis --requirepass "123456" --cluster-enabled yes --port 6380 docker run -d --name redis-3 --net host -v /usr/local/redis3/data:/data redis --requirepass "123456" --cluster-enabled yes --port 6381
(2)执行 docker ps 命令确认容器是否启动成功。
3,组建集群
(1)随便进入某一个 redis 容器:
docker exec -it redis-1 /bin/bash
(2)接着执行如下命令组建集群:
提示:
- 192.168.60.4 为当前宿主机的 ip 地址
- -a 后面为前面设置的 Redis 密码(如果 redis 未设置密码,则不需要该参数)
- --cluster-replica 表示每个主节点的 slave 数量。在集群的创建过程中会分配主机和从机,每个集群在创建过程中都将会分配到一个唯一的 id 并分配到一段 slot。
redis-cli -a 123456 --cluster create 192.168.60.4:6379 192.168.60.4:6380 192.168.60.4:6381 --cluster-replicas 0
(3)上面命令执行过程中会提示确认,我们输入 yes 后会车即可:
4,查看集群信息
(1)进入任意一个 redis 容器:
docker exec -it redis-1 /bin/bash
(2)执行如下命令链接到集群上:
redis-cli -a 123456 -c
(3)然后执行如下命令查询集群节点信息:
在集群节点信息中,可以看到每一个节点的 id,该节点是 slave 还是 master。如果是 slave,那么它的 master 的 id 是什么。如果是 master,那么每一个 master 的 slot 范围是多少......
cluster nodes
5,测试集群
(1)我们使用 redis-cli -c 连接到集群上,然后 set 一个值。由于 Redis 集群上的数据分配则是采用哈希槽(HASH SLOT),通过对 key 进行计算后会将该条数据自动存储到对应的节点上: