使用 docker-compose 构建 redis-cluster 集群  

一、前言

1、redis 主从复制解决的问题

主从复制中,一个master,多个slave。设置几个 slave 由 需求决定(需要的读吞吐量)。

主从复制,实现了提升 redis 读性能和冗余备份,而主从复制 与 redis-sentinel 哨兵机制结合,实现了高可用的故障自动转移。

2、redis 主从复制没有解决的问题

redis 主从复制并没有解决数据容量的问题,在主从复制架构中,每一个节点的内容都是相同的、完整的数据。

可以很轻易的看出来,这个架构并没有能够实现高效率的横向水平扩容。如果数据量增大,就只能不断的加内存,不止 master加,slave 也要跟着加。

在业务量只是集中于读时,主从复制 + 哨兵机制是一个很好的应对方案。

但是如果是 海量数据 + 高并发 + 高可用的场景,那么引入 redis cluster 集群,将是非常有必要的。

二、构建 redis-cluster 集群

1、节点规划(三主三从)
容器名称 容器IP地址 映射端口号
redis-master1 172.20.0.2 6391->6391
redis-master2 172.20.0.3 6392->6392
redis-master3 172.20.0.4 6393->6393
redis-slave-1 172.30.0.2 6394->6394
redis-slave-2 172.30.0.3 6395->6395
redis-slave-3 172.30.0.4 6396->6396
2、下载文件
mkdir /data/docker
cd /data/docker
git clone https://github.com/haveyb/redis-cluster.git
cd redis-cluster
3、开始构建

(1)构建镜像

docker build -t redis-cluster /data/docker/redis-cluster

(2)快速构建多个容器

docker-compose up -d 

注:安装docker-compose

(3)使用docker ps -a 查看结果