[TOC] >[info]以下例子用的是伪集群,真正的集群放到不同的机器即可。 端口是7001-7006 工作目录:`/opt/redis-cluster` ## 一、创建文件夹 首先创建一堆对应端口的文件夹 编辑创建脚本`vim create.sh`内容如下 ~~~ for i in `seq 7001 7006` do mkdir -p ${i}/data done ~~~ 执行脚本 ~~~ sh create.sh ~~~ ## 二、创建docker-compose配置 编辑环境配置`vim .env`内容如下 ~~~ redis_path=/opt/redis-cluster ~~~ 编辑`vim docker-compose.yml`内容如下 ~~~ version: '3.4' x-image: &default-image publicisworldwide/redis-cluster x-restart: &default-restart always x-netmode: &default-netmode host services: redis1: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - ${redis_path}/7001/data:/data environment: - REDIS_PORT=7001 redis2: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - ${redis_path}/7002/data:/data environment: - REDIS_PORT=7002 redis3: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - ${redis_path}/7003/data:/data environment: - REDIS_PORT=7003 redis4: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - ${redis_path}/7004/data:/data environment: - REDIS_PORT=7004 redis5: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - ${redis_path}/7005/data:/data environment: - REDIS_PORT=7005 redis6: image: *default-image network_mode: *default-netmode restart: *default-restart volumes: - ${redis_path}/7006/data:/data environment: - REDIS_PORT=7006 ~~~ ## 三、启动所有redis 执行以下命令 ~~~ docker-compose up -d ~~~ ## 四、部署cluster 通过`inem0o/redis-trib`镜像,编辑脚本`vim redis-trib.sh`内容如下 ~~~ docker run --rm -it inem0o/redis-trib create --replicas 1 192.168.28.130:7001 192.168.28.130:7002 192.168.28.130:7003 192.168.28.130:7004 192.168.28.130:7005 192.168.28.130:7006 ~~~ 运行脚本`sh redis-trib.sh` 输入`yes` 启动成功 ## 五、spring boot 工程集成cluster集群 把单机的`spring.redis.host`和`spring.redis.port`配置改成以下 ~~~ ##### redis配置 spring.redis.cluster.nodes=192.168.28.130:7001,192.168.28.130:7002,192.168.28.130:7003,192.168.28.130:7004,192.168.28.1 ~~~