docker安装redis7-主从模式

news2024/10/6 18:21:03

说明

系统版本:CentOS7.9

redis版本:7.0.5镜像

此模式为1主2从,主节点端口为6379,从节点端口为6380、6381以下所有的示例以redis7.0.5为例

下载镜像

docker pull redis:7.0.5

 创建挂载路径

所有节点的数据、配置文件以及日志都挂载到宿主机上,防止容器重启后导致数据丢失

# 主节点
mkdir -p /root/data/redis-master/conf
mkdir -p /root/data/redis-master/data

# 从节点1
mkdir -p /root/data/redis-slave1/conf
mkdir -p /root/data/redis-slave1/data

#从节点2
mkdir -p /root/data/redis-slave2/conf
mkdir -p /root/data/redis-slave2/data

配置主节点redis.conf文件

下载配置文件

 redis7版本的镜像中没有对应的redis.conf配置文件,需要的可以从官网安装包里面下载对应版本的redis.conf文件。下载地址:Redis下载 以下以7.0.5为例

-P: 表示将安装包下载到指定路径下

wget -P /root/software https://github.com/redis/redis/archive/refs/tags/7.0.5.tar.gz

解压缩安装包

-C: 指定压缩包解压到哪里, ./表示解压到当前文件夹下

tar -zxvf /root/software/7.0.5.tar.gz -C ./

 复制redis.conf到主节点的挂载卷目录中

cp /root/software/redis-7.0.5/redis.conf /root/data/redis-master/conf/

 修改redis.conf文件

vim /root/data/redis-master/conf/redis.conf

修改以下内容

# 修改bind使redis可以外部访问,正式环境不建议设置为0.0.0.0
bind 0.0.0.0
# 保护模式,默认yes,如果不需要保护模式可以设置为no            
protected-mode yes
# 端口号,默认即可
port 6379
# 日志文件存放位置
logfile /data/redis.log
# 用守护线程的方式启动,关闭
daemonize no
# 数据存放目录
dir /data
# 密码
requirepass <your password>
# 开启AOF方式持久化 默认是no
appendonly yes
# 持久化数据文件存放的文件夹名称,不能带/
appenddirname "aof"

 配置从节点的redis.conf文件

从节点1的配置

vim /root/data/redis-slave1/conf/redis.conf

 增加以下配置内容

port 6380
replicaof <主节点ip> <主节点的port>
logfile /data/redis.log
dir /data
masterauth <主节点配置的requirepass值>

从节点2的配置

vim /root/data/redis-slave2/conf/redis.conf

增加以下内容

port 6381
replicaof <主节点ip> <主节点port>
logfile /data/redis.log
dir /data
masterauth <主节点配置的requirepass值>

启动redis

启动主节点

docker run -p 6379:6379 \
--privileged=true \
-v /root/data/redis-master/data:/data \
-v /root/data/redis-master/conf:/usr/local/etc/redis \
--name redis-master \
--restart=always \
-d redis:7.0.5 \
redis-server /usr/local/etc/redis/redis.conf

启动从节点1

docker run -p 6380:6380 \
--privileged=true \
-v /root/data/redis-slave1/data:/data \
-v /root/data/redis-slave1/conf:/usr/local/etc/redis \
--name redis-slave1 \
--restart=always \
-d redis:7.0.5 \
redis-server /usr/local/etc/redis/redis.conf

启动从节点2

docker run -p 6381:6381 \
--privileged=true \
-v /root/data/redis-slave2/data:/data \
-v /root/data/redis-slave2/conf:/usr/local/etc/redis \
--name redis-slave2 \
--restart=always \
-d redis:7.0.5 \
redis-server /usr/local/etc/redis/redis.conf

确认是否部署成功

查看主节点日志

tail -f /root/data/redis-master/data/redis.log 

查看集群信息

docker exec -it redis-master redis-cli
# auth 进行权限验证
auth <your password>
# 集群信息
info replication

 测试

主节点添加数据

docker exec -it redis-master redis-cli
set name zs
set age 18

从节点1获取数据

docker exec -it redis-slave1 redis-cli -p 6380
keys *

 从节点2获取数据

docker exec -it redis-slave2 redis-cli -p 6381
keys *

部署中遇到的问题

 第一个报错:Error condition on socket for SYNC: Connection refused

解决方案

  • 检查从节点的配置是否正确
  • replicaof 中的配置不能写127.0.0.1

第二个报错:链接从节点的时候报错:Could not connect to Redis at 127.0.0.1:6379: Connection refused

解决方案

  • 使用redis-cli链接的时候默认连的是6379端口,但是配置的端口不是6379,

  • 加上-p参数指定端口

    docker exec -it redis-slave1 redis-cli -p 6380

结束

以上是整个部署过程,三个节点部署在了同一台宿主机上面,使用不同的端口进行区分,如果大家在部署过程中遇到问题欢迎私信或者评论。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/885631.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

隧道人员定位方案

针对隧道环境的人员定位方案&#xff0c;UWB定位技术同样可以提供高精度和可靠的定位服务。以下是一个可行的方案&#xff1a; 部署基站网络&#xff1a;在隧道内建立一个基站网络&#xff0c;基站需要均匀分布在各个关键位置&#xff0c;以确保全方位的覆盖。由于隧道的特殊环…

CMake:检测外部库---使用pkg-config

CMake:检测外部库---使用pkg-config 导言ZMQ安装项目结构CMakeLists.txt相关源码 导言 前面几篇内容的学习&#xff0c;我们基本上了解了如何链接一个三方库的方法。本篇以及下一篇将补充两个检测外部库的方法。 目前为止&#xff0c;我们已经学习了两种检测外部依赖关系的方…

文件的导入与导出

文章目录 一、需求二、分析1. Excel 表格数据导出2. Excel 表格数据导入一、需求 在我们日常开发中,会有文件的导入导出的需求,如何在 vue 项目中写导入导出功能呢 二、分析 以 Excel 表格数据导出为例 1. Excel 表格数据导出 调用接口将返回的数据进行 Blob 转换,附: 接…

iPhone删除的照片能恢复吗?不小心误删了照片怎么找回?

iPhone最近删除清空了照片还能恢复吗&#xff1f;大家都知道&#xff0c;照片对于我们来说是承载着美好回忆的一种形式。它记录着我们的平淡生活&#xff0c;也留住了我们的美好瞬间&#xff0c;具有极其重要的纪念价值。 照片不小心误删是一件非常难受的事&#xff0c;那么iP…

【智慧工地源码】:人工智能、BIM技术、机器学习在智慧工地的应用

智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、BIM、物联网和移动互联网等高科技技术手段&#xff0c;将施工区域各系统数据汇总&#xff0c;建立可视化数字工地。同时&#xff0c;围绕人、机、料、法、环等各方面关键因素&…

Unity用NPOI创建Exect表,保存数据,和修改删除数据。以及打包后的坑——无法打开新创建的Exect表

先说坑花了一下午才找到解决方法解决&#xff0c; 在Unity编辑模式下点击物体创建对应的表&#xff0c;获取物体名字与在InputText填写的注释数据。然后保存。创建Exect表可以打开&#xff0c;打包PC后&#xff0c;点击物体创建的表&#xff0c;打不开文件破损 解决方法&#…

AIGC绘画:kaggle部署stable diffusion项目绘画

文章目录 kaggle介绍项目部署edit my copy链接显示 结果展示 kaggle介绍 Kaggle成立于2010年&#xff0c;是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲&#xff0c;可以提供一些数据&#xff0c;进而提出一个实际需要解决的问题&#xff1b;从参赛者的角度来讲&…

【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…

建筑工地的水泥分配和料场选址问题(Cplex求解线性规划模型+粒子群搜索算法)【Java实现】

问题 问题一求解 求解思路 该问题可以直接建立一个线性规划模型&#xff0c;然后使用cplex求解器来求解 模型 决策变量 x i j &#xff1a;第 i 个料场向第 j 个工地运送的水泥吨数&#xff0c;其中 1 ≪ i ≪ m &#xff1b; 1 ≪ j ≪ n 其中 x i j 的取值范围是 [ 0 , d…

prisma的增删改查

目录 一、单表1.增自增问题2.查询所有信息3.查询以l开头的数据4.查询限定数据5.查询唯一的数据6.分页查询7.改8.删 二、联表1.新增文章2.将文章和用户关联3.查询用户的同时查询用户的文章4.关联查询&#xff08;级联操作&#xff0c;链式调用&#xff09; 一、单表 模型 mode…

腾讯云轻量服务器测评:2核 2G 4M

腾讯云轻量2核2G4M服务器&#xff0c;4M带宽下载速度可达512KB/秒&#xff0c;系统盘为50GB SSD盘&#xff0c;300GB月流量&#xff0c;地域节点可选上海、广州和北京&#xff0c;腾讯云百科分享腾讯云2核2G4M轻量应用服务器配置性能表&#xff1a; 目录 腾讯云轻量2核2G4M服…

Spring MVC 中的常见注解的用法

目录 认识 Spring MVC什么是 Spring MVCMVC 的定义 Spring MVC 注解的运用1. Spring MVC 的连接RequestMapping 注解 2. 获取参数获取单个参数获取多个参数传递对象表单传参后端参数重命名RequestBody 接收 JSON 对象PathVariable 获取 URL 中的参数上传文件 RequestPart获取 C…

最小生成树,Kruskal算法

最小生成树&#xff08;Minimum Spanning Tree&#xff0c;简称 MST&#xff09;是一个连通图的子图&#xff0c;它包含图中的所有节点&#xff0c;并且是一个树&#xff08;无环连通图&#xff09;&#xff0c;同时保证连接所有节点的边的权重之和最小。 在一个带权重的连通图…

R语言实现非等比例风险生存资料分析(1)

#非等比例风险的生存资料分析 ###1 生成模拟数据### library(flexsurv) set.seed(123) # 生成样本数量 n <- 100 # 生成时间数据 time <- sample(1:1000,n,replaceF) # 调整shape和scale参数以控制生存曲线形状 # 生成事件数据&#xff08;假设按比例风险模型&#xff0…

【SpringBoot】中的ApplicationRunner接口 和 CommandLineRunner接口

1. ApplicationRunner接口 用法&#xff1a; 类型&#xff1a; 接口 方法&#xff1a; 只定义了一个run方法 使用场景&#xff1a; springBoot项目启动时&#xff0c;若想在启动之后直接执行某一段代码&#xff0c;就可以用 ApplicationRunner这个接口&#xff0c;并实现接口…

YB2416是支持高电压输入的同步降压电源管理芯片

简介&#xff1a; YB2416是支持高电压输入的同步降压电源管理芯片&#xff0c;在 4~30V 的宽输入电压范围内可实现3A的连续电流输出。通过调节 FB 端口的分压电阻&#xff0c;可以输出1.8V到28V的稳定电压。YB2416具有优秀的恒压/恒流(CC/C)特性。YB2416 采用电流模式的环路控制…

UI自动化测试常见的Exception

一. StaleElementReferenceException&#xff1a; - 原因&#xff1a;引用的元素已过期。原因是页面刷新了&#xff0c;此时当然找不到之前页面的元素。- 解决方案&#xff1a;不确定什么时候元素就会被刷新。页面刷新后重新获取元素的思路不变&#xff0c;这时可以使用python的…

【云原生】【k8s】从小白到大神之路之学习运维第82天-------基于Prometheus监控Kubernetes集群

第四阶段 时 间&#xff1a;2023年8月17日 参加人&#xff1a;全班人员 内 容&#xff1a; 基于Prometheus监控Kubernetes集群 目录 一、Prometheus简介 &#xff08;一&#xff09;Prometheus的基本原理 &#xff08;二&#xff09;Prometheus优势 &#xff08;三&a…

java.security.InvalidKeyException: Illegal key size

JDK受版本安全限制&#xff0c;默认只允许128位长度以内的。秘钥长度&#xff0c;如果密钥大于128, 会抛出java.security.InvalidKeyException: Illegal key size 异常. java运行时环境默认读到的是受限的policy文件. 文件位于${java_home}/jre/lib/security, 这种限制是因为美…

【IMX6ULL驱动开发学习】06.DHT11温湿度传感器驱动程序编写与测试

一、DHT11简介 DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器&#xff0c;会测量空气中湿度&#xff0c;再根据测量结果决定是否继续加湿。 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器&#xff0c;具有超小体积、极低功耗的特点…