准备配置文件

bind 0.0.0.0
# redis端口
port ${PORT}
requirepass redispwd
# 关闭保护模式
protected-mode no
# 开启集群
cluster-enabled yes
# 集群节点配置
cluster-config-file nodes.conf
# 超时
cluster-node-timeout 5000
# 集群节点IP host模式为宿主机IP
cluster-announce-ip 这里放宿主机ip
# 集群节点端口 7001 - 7006
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
# 开启 appendonly 备份模式
appendonly yes
# 每秒钟备份
appendfsync everysec
# 对aof文件进行压缩时,是否执行同步操作
no-appendfsync-on-rewrite no
# 当目前aof文件大小超过上一次重写时的aof文件大小的100%时会再次进行重写
auto-aof-rewrite-percentage 100
# 重写前AOF文件的大小最小值 默认 64mb
auto-aof-rewrite-min-size 64mb

集群节点文件生成

for port in `seq 7001 7006`; do \
mkdir -p ./redis-cluster/${port}/conf \
&& PORT=${port} envsubst < ./redis.conf > ./redis-cluster/${port}/conf/redis.conf \
&& mkdir -p ./redis-cluster/${port}/data; \
done

准备 compose 文件

version: "3.1"
services: redis1:
image: redis:5.0.3
container_name: redis1
restart: always
networks:
- test_net
ports:
- 7001:7001
- 17001:17001
volumes:
- ./redis-cluster/7001/conf/redis.conf:/etc/redis/redis.conf
- ./redis-cluster/7001/data:/data
command:
["redis-server", "/etc/redis/redis.conf"] redis2:
image: redis:5.0.3
container_name: redis2
restart: always
networks:
- test_net
ports:
- 7002:7002
- 17002:17002
volumes:
- ./redis-cluster/7002/conf/redis.conf:/etc/redis/redis.conf
- ./redis-cluster/7002/data:/data
command:
["redis-server", "/etc/redis/redis.conf"] redis3:
image: redis:5.0.3
container_name: redis3
restart: always
networks:
- test_net
ports:
- 7003:7003
- 17003:17003
volumes:
- ./redis-cluster/7003/conf/redis.conf:/etc/redis/redis.conf
- ./redis-cluster/7003/data:/data
command:
["redis-server", "/etc/redis/redis.conf"] redis4:
image: redis:5.0.3
container_name: redis4
restart: always
networks:
- test_net
ports:
- 7004:7004
- 17004:17004
volumes:
- ./redis-cluster/7004/conf/redis.conf:/etc/redis/redis.conf
- ./redis-cluster/7004/data:/data
command:
["redis-server", "/etc/redis/redis.conf"] redis5:
image: redis:5.0.3
container_name: redis5
restart: always
networks:
- test_net
ports:
- 7005:7005
- 17005:17005
volumes:
- ./redis-cluster/7005/conf/redis.conf:/etc/redis/redis.conf
- ./redis-cluster/7005/data:/data
command:
["redis-server", "/etc/redis/redis.conf"] redis6:
image: redis:5.0.3
container_name: redis6
restart: always
networks:
- test_net
ports:
- 7006:7006
- 17006:17006
volumes:
- ./redis-cluster/7006/conf/redis.conf:/etc/redis/redis.conf
- ./redis-cluster/7006/data:/data
command:
["redis-server", "/etc/redis/redis.conf"] networks:
test_net:
external: true 配置相对比较简单,需要注意下docker网络,提前创建好(docker network ls 可以查看具体有哪些网络)

redis 集群正式搭建

docker-compose -f '填写上述的compose文件名' up -d

进入启动的端口为7001的容器
docker exec -it container_id bash 集群搭建指令(提前关闭防火墙 iptables -F,也有别的指令,自行百度即可):
redis-cli -p 7001 -a redispwd --cluster create 宿主机ip:7001 宿主机ip:7002 宿主机ip:7003 宿主机ip:7004 宿主机ip:7005 宿主机ip:7006 --cluster-replicas 1 等待集群自行搭建完成即可。

需要说明一下:此处搭建的为伪集群,即同一宿主机,不同端口。

docker-compose 搭建 redis 集群的更多相关文章

  1. 从零开始学习docker之在docker中搭建redis(集群)

    docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...

  2. Docker Compose 搭建 Redis Cluster 集群环境

    在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...

  3. docker搭建redis集群和Sentinel,实现故障转移

    0.引言 公司开发需要用到redis,虽然有运维自动搭建,还是记录下如何搭建redis集群和Sentinel. 采用的是vagrant虚拟机+docker的方式进行搭建. 搭建思路: 首先是借鉴下其他 ...

  4. 这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)

    前言 一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊 ...

  5. docker搭建redis集群

    一.简介 docker作为一个容器技术,在搭建资源隔离性服务上具有很大的优势,在一台服务器上可以启动多个docker容器,感觉每个在容器里面部署的服务就像是部署在不同的服务器上.此次基于docker以 ...

  6. 用Docker构建分布式Redis集群

    [编者的话]本文介绍了如何使用Docker搭建Redis集群,很多读者都在问Docker能带来哪些实质性的好处,我想本文就是一个很好的例子.不使用Docker你也可以搭建Redis集群,那使用Dock ...

  7. Docker快速构建Redis集群(cluster)

    Docker快速构建Redis集群(cluster) 以所有redis实例运行在同一台宿主机上为例子 搭建步骤 redis集群目录清单 . ├── Dockerfile ├── make_master ...

  8. Mac 搭建 Redis 集群

    date: 2020-09-24 16:24:00 updated: 2020-09-24 17:30:00 Mac 搭建 Redis 集群 参考文档 摘要 安装docker brew cask in ...

  9. 基于 twemproxy 搭建 redis 集群

    概述 由于单台redis服务器的内存管理能力有限,使用过大内存redis服务器的性能急剧下降,且服务器发生故障将直接影响大面积业务.为了获取更好的缓存性能及扩展型,我们将需要搭建redis集群来满足需 ...

  10. Windows下搭建Redis集群

    Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...

随机推荐

  1. AWK nr nf

    https://blog.csdn.net/sh13661847134/article/details/118018456 awk中NF,NR的含义awk中NF和NR的意义,其实你已经知道NF和NR的 ...

  2. JAVA-GUI创作学校管理系统

    1.对于学校的管理系统,我们先做一个简单的一个需求分析,我们需要做学生信息管理,教师信息管理,课程的信息管理.我们要根据自己的需求进行数据库的编写. 简单的添加了几个 2.然后我们通过eclipse+ ...

  3. LP1-5:WEB应用测试技巧

    一.静态页面 静态文字 1) 检查一个页面或者一组中多个页面的字体.size.颜色.位置等因素是否符合需求: 2)检查页面文字图标的间距.行距是否统一,对齐方式是否统一: 3)静态文字的含义是否符号需 ...

  4. 肖sir__整理项目链接

    项目链接: https://www.cnblogs.com/xiaolehong/p/16460523.html 保险项目https://www.cnblogs.com/xiaolehong/p/16 ...

  5. 软件测试肖sir__多线程、多进程、多协程

    Python并发编程有三种方式: 1.多线程Thread(threading)(读音:思来d,丁).多进程Process(multiprocessing).多协程Coroutine(asyncio) ...

  6. 2022-05-30内部群每日三题-清辉PMP

    1.对于一个长期的基础设施项目,由于全球商业环境,项目经理必须获得风险最小的供应商.项目经理应该使用什么合同类型? A.固定总价合同(FFP) B.成本加固定费用合同(CPFF) C.总价加激励费用合 ...

  7. Cannot read property 'xxxx' of null

    在使用的vue3+element-plus的项目中,我使用了form表单对数据进行校验. 但是使用了: refDom.value.validate((valid) => {}) 后,过一会控制台 ...

  8. speedtest测速

    wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py chmod a+rx speedtest.py mv speed ...

  9. ARM的发展史以及架构解析

    本文从ARM的发展历史着手,以S3C2440为例与51单片机进行对比分析,详细解析了ARM架构. 先来谈一下ARM的发展史:1978年12月5日,物理学家Hermann Hauser和工程师Chris ...

  10. 12组-Beta冲刺-1/5

    12组-Beta冲刺-1/5 一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15590128.html Github链接:http ...