docker中实现多机redis主从集群

docker:搭建单机redis主从集群 最近在学习docker和kubernetes,在看《docker容器与容器云》这本书的时候,就按照书中的教程搭建第一个docker应用栈,其中遇到了一些坑。现把搭建过程中遇到的困难记录下来。主要是在搭建redis主从集群时遇到的困难。1、获取redis镜像首先从Docker Hub中或者其他的镜像仓库中获取现有的可用镜像,在这些镜像的基础上启动镜像,这里我选择从docker官方镜像中获取redis镜 阅读详情

redis主从集群是每个使用redis的小伙伴都必需知道的,那如何在docker中快速配置呢?这篇来教你快速上手,跟着复制完全就能用!!

1. 前置准备

1.1 docker安装

以防有小伙伴没预先安装docker,这里提供安装步骤

# 配置docker yum源。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动& 开机启动docker; enable + start 二合一
systemctl enable docker --now

# 配置加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

1.2 创建docker network(单机中使用)

docker network create mynet01

2. 单机redis

先从简单的引人,注意实际生产过程中并不是都在单机上的(一台机起一个)
在本例子中就使用一主一从来做简单实现(单机下在同一个网络中,也就是刚刚创建好的mynet01)

2.1 主机redis

docker run -d -p 6379:6379 \  # 主机端口映射
-v /app/rd1:/bitnami/redis/data \ # 目录挂载
-e REDIS_REPLICATION_MODE=master \ # 配置环境变量,对应bitnami这个镜像
-e REDIS_PASSWORD=123456 \ 
--network mynet01 --name redis01 bitnami/redis
2.1.1 bug – 启动报错无访问权限

启动后通过docker ps并没有看到前面运行的实例,这是由于从内部访问写配置文件并不是root用户,所以需要更改权限(同下)

chmod -R 777 rd1

docker restart redis02

2.2 从机redis

从机配置的东西就多了,需要配置好主机的host、端口号、密码等信息

docker run -d -p 6380:6379 \ # 主机端口映射
 -v /app/rd2:/bitnami/redis/data \ # 目录挂载
 -e REDIS_REPLICATION_MODE=slave \
 -e REDIS_MASTER_HOST=redis01 \ # 主机的ip
 -e REDIS_MASTER_PORT_NUMBER=6379 \ # 主机的redis端口
 -e REDIS_MASTER_PASSWORD=123456 \ # 主机redis的密码
 -e REDIS_PASSWORD=123456 \ # 本机redis的密码	
 --network mynet01 --name redis02 bitnami/redis

6.1.3 验证

在从机中输入如下命令访问redis

docker exec -it redis02 redis-cli

# 进去之后记得密码
AUTH 123456

# 查看主从复制信息
INFO replication

如果成功的话能看到如下信息
请添加图片描述

3. 多机redis

有了前面单机的引入,多机之前的主从集群搭建其实就是用host来绑定对应机器的ip地址,具体如下
在本例子中还是使用一主一从来搭建主从集群,其中主机的ip是192.168.187.128
具体的ip根据自己申请的服务器确定,如果是本机上开的虚拟机可以ifconfig查看

3.1 主机redis

因为是不同机器无需通过network

docker run -d -p 6379:6379  \
-v /app/rd1:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=master \ 
-e REDIS_PASSWORD=123456  --name redis01 bitnami/redis 

3.2 从机redis

其实就跟单机的类似,只不过host这里换成主机的ip地址,这样就可以通过网络访问到主机上了

docker run -d -p 6380:6379 \
-v /app/rd2:/bitnami/redis/data \
-e REDIS_REPLICATION_MODE=slave  \
-e REDIS_MASTER_HOST=192.168.187.128 \ # 注意这里的host地址为主机的ip地址
-e REDIS_MASTER_PORT_NUMBER=6379 \
-e REDIS_MASTER_PASSWORD=123456 \
-e REDIS_PASSWORD=123456 --name redis02 bitnami/redis

3.3 测试

首先进入主机redis

docker exec -it redis01 redis-cli

# 进去之后记得密码
AUTH 123456

# 查看主从复制信息
INFO replication

再进入从机redis

docker exec -it redis02 redis-cli

# 进去之后记得密码
AUTH 123456

# 查看主从复制信息
INFO replication

如果成功将会看到如下主从集群信息
在这里插入图片描述如果还不放心,不妨跟我一样在主机中设置一个键值,然后再在从机中获取对应的key,看看是否是你设置的value😉

docker-redis多主多从 docker run 运行容器-d 后台运行--name 容器名--network 网络----privileged=true 容器卷映射——后面是映射对应目录--cluster-enabled yes --appendonly yes --port 6381开启集群,端口号。 阅读详情

相关推荐

Redis整合MySQL主从集群

Redis整合MySQL主从集群1、用Docker搭建MySQL主从集群1.1 拉取mysql镜像1.2 创建配置文件夹1.3 编写主服务器的配置文件信息1.4 启动mysql主服务器的容器1.5 观察主服务器状态1.6 配置mysql从服务器1.7 启动mysql从服务器1.8 确认主从关系2、准备数据2.1 创建数据库2.2 创建student数据表2.3 向student表插入几条数据3、用Java代码读写MySQL集群和Redis3.1 引入redis和mysql依赖3.2 代码整合4、MySQL主

冲出仁川,走出马德里,故事还会再继续 3402

使用 docker-compose 一键部署多个 redis 实例

前期准备、导入镜像、部署 redis master 脚本、部署 redis slave 脚本、模板文件、部署 redis、基本维护

wzy0623的专栏 1347

特性阻抗 – SI/PI 世界碰撞的地方

除了谐振零点和峰值外,在一定频率下,传输线的阻抗看起来像远端开路时的电容器的阻抗,也看起来像远端短路时电感的阻抗。如果随后的制造变化将测得的阻抗推到 -10% 容差的低端(例如 44 欧姆)的测量区域内,那么如果在初始下降时测量,则真正的特性阻抗将在 42 欧姆时降低 5%,并且超出规格。这意味着,当我们测量红色或蓝色图的峰和相邻谷之间的中间阻抗时,它是该频率下传输线的特性阻抗。图 7 远端开路时(红色常亮)与远端短路时(蓝色常亮)的电感和电容抗阻抗与频率的关系(上图)和传输线的阻抗与频率(下图)的对比。

jkh920184196的博客 962

利用 Docker 在一台机器上部署多个 Redis 实例

docker run -p 20001:6379 -d redis redis-server --appendonly yes docker run -p 20002:6379 -d redis redis-server --appendonly yes docker run -p 20003:6379 -d redis redis-server --appendonly yes docker r...

HeatDeath的博客 6332

Oracle19c SYSAUX表空间爆满?手把手教你清理SM/ADVISOR和AUDSYS占用(附完整SQL)

本文详细解析了Oracle19c中SYSAUX表空间爆满的常见原因及解决方案,重点针对SM/ADVISOR和AUDSYS组件的空间占用问题提供了完整的SQL清理脚本。通过诊断查询、空间清理和预防性维护策略,帮助DBA有效管理SYSAUX表空间,确保数据库稳定运行。

weixin_28338005的博客 238

基于Active-HDL的HDL设计录入与仿真

作者:毛茏玮 / Saint 掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博:https://weibo.com/5458277467/profile?topnav=1&amp;wvr=6&amp;is_all=1 GitHub:github.com/saint-000 优快云: https://me.youkuaiyun.com/qq_4053...

一个会写代码的烤鸭 7782

Docker搭建redis集群

当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,也就是映射到某个节点上。–cluster-replicas 1 表示集群主节点需要多少个从节点,我们用了6台,即3台服务器构成集群,每台服务器设置1台从服务器。4.1 进入端口为6381的容器,新增两个key,这里需要加-c,集群操作,可以将key-value放入其他容器中。

冷脸萌萌的技术实践 1858

QGroundControl高级配置与自定义功能实战指南

本文深入探讨了QGroundControl(QGC)的高级配置与自定义功能,为无人机开发者、系统集成商和高级用户提供实战指南。内容涵盖从品牌界面定制、自定义MAVLink消息处理,到插件开发与自动化部署的全流程,旨在帮助用户解锁QGC的隐藏潜力,打造专属的行业解决方案。

weixin_29234509的博客 240

docker redis跨主机多机器集群

docker swarm redis集群机器配置创建目录创建网络编写compose.yml模版文件启动服务测试验证集群集群测试验证 机器配置 1、需要有网络,因为所有安装都是基于docker配置,没有网络无法进行。 2、机器配置需要Centos7+及以上版本,内存32g+及以上。 安装配置: redis配置: 创建目录 分别在集群的各服务器(85/86/87)上创建目录: sudo rm -rf /home/data/redis/ && sudo mkdir -p /home/data/

奋斗的小鸟专栏 4680

SQL-拼多多 面试题:连续3次为球队得分的球员名单

1.使用LAG开窗函数 筛选出 下一次和下下一次得分,并用进球时间进行排序。2.使用where筛选出值得嘉奖的球员。

Ftr1998的博客 644

微信小程序 - 详细实现打开跳转第三方 H5 网页链接,在微信小程序内直接跳转打开第三方网站链接详细教程(支持跳转公众号文章等,直接复制代码即可)

小程序跳转h5,小程序-Taro小程序中打开h5页面链接,...小程序跳转h5链接(web-view)_微信小程序,小程序如何跳转h5页面,小程序跳转到第三方H5网页,微信小程序跳转第三方H5的方法,小程序-实现怎么跳转打开H5网页链接(或跳转至公众号文章,打开第三方网站,放校验文件,怎么配置业务域名,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,后台配置,怎么

🏆 前端领域优质创作者 3万+

使用Docker搭建Redis主从集群

单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。

时间如瑾 代码如诗 1295

ROS从入门到精通0-4:VSCode 搭建 ROS 工程环境

为了提高开发效率,可以先安装集成开发工具和使用方便的工具,本教程用VSCode搭建ROS工程环境

FRIGIDWINTER的博客 1万+

Docker--利用dockerfile搭建mysql主从集群和redis集群

它解决了单机 Redis 在存储容量、读写性能和容错能力上的限制,适用于大规模、高并发的应用场景。设置 MySQL 服务器的唯一 ID,主从复制中必须指定,且每个服务器的 ID 必须唯一。作用:将 MySQL 的数据存储在主机上,确保容器重启或删除后数据不会丢失。: root 指定 MySQL 的 root 用户密码为 root。:这一行指定了 Docker 镜像的基础镜像。是容器中 MySQL 默认的数据存储路径。语句:用于配置从库连接主库的相关信息。首先,我们要去官网,找到源码的下载链接。

m0_74068921的博客 4497

MATLAB基础应用精讲-【数模应用】PPO算法(附python代码实现)(二)

表示为状态转移概率和动作选择概率的乘积,因为状态和动作决定轨迹。

qq_36130719的博客 413

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

centos7 docker搭建redis主从集群sentinel哨兵

centos7 docker搭建redis主从集群+sentinel哨兵展开一、安装docker启动一个redis实例1.centos7可以使用yum安装2.下载redis镜像3.查看下载的镜像4.用docker启动redis实例-d 以守护进程模式运行-p 将容器的6379端口映射到宿主机的6379端口–requirepass 设置redis密码–masterauth 设置连接主服务的密码,需要和requirepass设置一样。

wangyuandong的博客 1344

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

从原理到搭建---Docker环境下Redis主从集群搭建、哨兵集群搭建

docker搭建Redis主从节点,以一主一从为例;docker搭建Sentinel哨兵集群,以三个哨兵节点为例。另含原理概念解释。

m0_73976056的博客 1839

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Docker搭建Redis主从集群,哨兵监控

王珂 49186456@qq.com 2019/07/09 简介 本文介绍如何使用Docker搭建Redis主从集群,并且通过哨兵监控集群状态,当主发生故障时,自动从备中选举出新的主。 我们将搭建一个1主2从的Redis集群,通过3个哨兵进行监控。 准备 环境准备 一台linux服务器,IP:192.168.1.117,安装CentOS7 CentOS7上安装好Docker 创建redis...

王珂的专栏 2147

第11章 Docker应用实战-Docker部署Redis

本节介绍如何在docker中快速部署一个单节点Redis,Redis分片集群,Redis主从集群。需要你提前准备docker和docer-compose环境,如果你尚未安装好,请查看我的另一篇教程《第1章 Docker应用实战-基础环境准备》进行安装。

王珂的专栏 1836

Redis主从集群搭建

本文详细介绍了在CentOS系统上使用Docker搭建Redis主从集群的全过程。通过Docker Compose部署了1个Master节点(7001端口)和2个Slave节点(7002/7003端口),实现了读写分离架构。文章重点阐述了主从同步机制,包括首次连接时的全量同步(RDB方式)和后续的增量同步(repl_baklog环形缓冲区机制),并分析了网络中断可能导致的全量同步场景。最后提出了优化建议:启用无磁盘复制、控制内存使用、调整缓冲区大小及采用链式复制结构等。整个部署过程验证了主从节点的数据自动同

m0_61786208的博客 883

搭建Redis主从集群

学会搭建redis主从集群

烛照@123的博客 1079

Redis主从集群和哨兵集群

Redis主从集群和哨兵集群

m0_73922877的博客 1218

docker搭建redis多主多从策略

重新进入6381,-c可以防止路由失效((error) MOVED 12706 192.168.202.200:6383),往其他服务器hash槽存数据时报错。重启之后发现,6381还是从机,6384是主机。上图可以看出,当6381宕机后,6384由从机变为了主机。#配置好一个直接复制进其他五个机器上就行,要在相同目录。# 停止6381,机器,查看集群状态。# 进入6382容器,查看集群状态。# 进入任意redis容器,这里以6381为例。3.1.2 切换到集群上的其他服务器,获取值。

chenyuanju的博客 1954

搭建redis主从集群、哨兵集群

创建主从集群和哨兵集群

m0_38137988的博客 1216

使用Docker Compose搭建Redis主从集群

通过以上的步骤,我们就使用docker-compose搭建了一主两从的redis主从复制的结构,主机用来写,从机用来读。想详细了解其中原理的同学可以去研究研究,主从之间是如何进行建立连接的,全量复制和增量复制又是怎么回事,这种结构有什么优缺点,后面的哨兵模式又是怎么回事?集群如何搭建等等。

qq_47307140的博客 998

Docker容器创建Redis主从集群

docker容器创建redis主从集群学习笔记

练习生 752
上一篇: 【已解决】Error in the HTTP2 framing layer
下一篇: 虚拟机配置RabbitMQ集群教程
美味不是堡
博客等级 码龄6年 2009粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值