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的利用 ...
随机推荐
- Python实现XX短视频加密算法抓包分析及刷邀请
Python实现XX短视频加密算法抓包分析及刷邀请 出自:https://zhuanlan.zhihu.com/p/466929667?utm_id=0 Python彳余 一个会常常更新互联网,编程的 ...
- codeforce D. Concatenated Multiples
http://codeforces.com/contest/1029/problem/D 看C题的第一眼就觉得自己一定能做出来,结果就兴致勃勃地做了一天,最后做出来了.但看到这道题时,第一感觉就是&q ...
- 学习Typora免费安装步骤
学习Typora免费安装步骤 第一步: 安装typora-setup-x64-1.2.4.exe, 注意版本 第二步: 替换掉resources目录下的app.asar文件 第三步: 重启Typora ...
- Linux环境使用Docker安装SqlServer2017
系统环境: CentOS 7.6 64位(同样适用于Ubuntu) 安装步骤: 1.创建文件夹 /home/docker/sqlserver/mssql 2.下载镜像并用外部匿名卷挂载数据 $ doc ...
- v-if和v-show最重要一点
vif是新建与销毁标签 show是显示与隐藏标签 如果涉及到权限操作的话 必须使用vif 因为vshow中把标签改成display:none的话可以手动改成显示
- jinkens设置工作主目录
linux下,默认jenkins的主目录,位于当前用户下的.jenkins目录,需要自定义该目录位置的时候,可以通过设定环境变量 JENKINS_HOME 然后重启jenkins nohup java ...
- consul剔除某个服务
curl --request PUT http://ip:端口/v1/agent/service/deregister/服务对应的id地址
- nginx转发tomcat之https不生效
1.修改tomcat配置server.xml,让它从请求头中的X-Forwarded-Proto读取 <!-- xpath://Server/Service/Engine/Value --> ...
- pyqt5离线安装教程
目前总结的安装pyqt5,需要的离线安装包,除了每一个包要跟系统版本适配之外,还要考虑包跟包之间的适配.pyqt5跟它开头的一些包要保持是同一个版本,至少有2个小数点的位数是一样的才行,qt5跟它开头 ...
- NGAC下一代访问控制
NGAC,即下一代访问控制,采用将访问决定数据建模为图形的方法.NGAC 可以实现系统化.策略一致的访问控制方法,以高精细度授予或拒绝用户管理能力. 在这张图中,我们可以看到 /hr-docs 文件夹 ...