docker-compose 搭建 redis 集群
准备配置文件
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 集群的更多相关文章
- 从零开始学习docker之在docker中搭建redis(集群)
docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...
- Docker Compose 搭建 Redis Cluster 集群环境
在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...
- docker搭建redis集群和Sentinel,实现故障转移
0.引言 公司开发需要用到redis,虽然有运维自动搭建,还是记录下如何搭建redis集群和Sentinel. 采用的是vagrant虚拟机+docker的方式进行搭建. 搭建思路: 首先是借鉴下其他 ...
- 这次一定要教会你搭建Redis集群和MySQL主从同步(非Docker)
前言 一直都想自己动手搭建一个Redis集群和MySQL的主从同步,当然不是依靠Docker的一键部署(虽然现在企业开发用的最多的是这种方式),所以本文就算是一个教程类文章吧,但在动手搭建之前,会先聊 ...
- docker搭建redis集群
一.简介 docker作为一个容器技术,在搭建资源隔离性服务上具有很大的优势,在一台服务器上可以启动多个docker容器,感觉每个在容器里面部署的服务就像是部署在不同的服务器上.此次基于docker以 ...
- 用Docker构建分布式Redis集群
[编者的话]本文介绍了如何使用Docker搭建Redis集群,很多读者都在问Docker能带来哪些实质性的好处,我想本文就是一个很好的例子.不使用Docker你也可以搭建Redis集群,那使用Dock ...
- Docker快速构建Redis集群(cluster)
Docker快速构建Redis集群(cluster) 以所有redis实例运行在同一台宿主机上为例子 搭建步骤 redis集群目录清单 . ├── Dockerfile ├── make_master ...
- Mac 搭建 Redis 集群
date: 2020-09-24 16:24:00 updated: 2020-09-24 17:30:00 Mac 搭建 Redis 集群 参考文档 摘要 安装docker brew cask in ...
- 基于 twemproxy 搭建 redis 集群
概述 由于单台redis服务器的内存管理能力有限,使用过大内存redis服务器的性能急剧下降,且服务器发生故障将直接影响大面积业务.为了获取更好的缓存性能及扩展型,我们将需要搭建redis集群来满足需 ...
- Windows下搭建Redis集群
Redis集群: 如果部署到多台电脑,就跟普通的集群一样:因为Redis是单线程处理的,多核CPU也只能使用一个核, 所以部署在同一台电脑上,通过运行多个Redis实例组成集群,然后能提高CPU的利用 ...
随机推荐
- 快速构建用户xlwings环境
一.安装python python-3.8.3-amd64.exe 二.准备文件requirements.txt 内容如下 安装失败需要切换国内镜像源 numpy==1.22.1 openpyxl== ...
- SVN的安装和使用手册2
转载:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需 ...
- ES搜索- term与match区别&bool查询
term属于精确匹配,只能查单个词,tems可以匹配多个词(满足其中之一词的都会被搜索出来),多个词如果要同时匹配使用bool的must(must中带多个term): match进行搜索的时候,会先进 ...
- SDN实验环境安装
- python读取图片相关属性
背景:工作中用到一些基础的图片处理的任务,比如获取图片宽高.获取图片的旋转角度等等图片属性,都是比较零散的,这里简单做个记录备忘 这里用到的库exifread,安装 pip isntall exifr ...
- VSCode配置 关于丢失VSCode默认启动终端一事
在配置前端开发环境的时候碰到一个VSCode 的配置问题,在VSCode 中启用项目的时候,发现默认终端(PowerShell)是空的 项目无法启动,这时候需要自己选择终端 git Bash :自己安 ...
- mac 暗黑破坏神2
https://590m.com/f/28636472-500475496-61a14b (访问密码:7410) 此版本可以更改人员属性参数,过程有点复杂,如需了解,请留言+v沟通吧... 编辑 ...
- RabbitMQ-01-使用Java进行简单消息发送与接收
前言 这里使用手动管理jar与使用Maven管理jar两种方式,分别演示消息的发送和接收. 手动管理jar实现消息发送与接收 添加jar amqp-client-5.7.1.jar slf4j-api ...
- Linux系统下修改KVM虚拟机配置
一. 安装虚拟机 1. 设备重启进入BIOS,打开SMMU.F10保存退出 2. 进入系统后安装线管组件 virt-install qemu-kvm qemu-img virt-manager lib ...
- PID名词解析
在工程实际中,应用最为广泛的调节器控制规律为比例.积分.微分控制,简称PID控制,又称PID调节. 当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的 其它技术难以采用时,系统控 ...