返回 导航

Docker / K8s

hangge.com

Docker - 通过容器安装部署Redis教程2(Redis集群的搭建)

作者:hangge | 2021-07-27 08:10
    前文我演示了如何通过容器进行单 Redis 实例的部署(点击查看),但实际生产环境常常需要搭建 Redis 集群实现高可用,下面通过样例进行演示。

二、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,那么它的 masterid 是什么。如果是 master,那么每一个 masterslot 范围是多少......
cluster nodes

5,测试集群

(1)我们使用 redis-cli -c 连接到集群上,然后 set 一个值。由于 Redis 集群上的数据分配则是采用哈希槽(HASH SLOT),通过对 key 进行计算后会将该条数据自动存储到对应的节点上: 

(2)然后从其他节点再通过 get 获取该值,能够获取到则说明集群搭建成功:
评论

全部评论(0)

回到顶部