Redis | 主从模式
Redis | 主从模式
1. 简介
Redis主从模式(Replication)是Redis提供的一种数据备份和高可用性解决方案。通过主从复制,可以将一个Redis服务器的数据复制到其他多个从服务器,从而实现数据的备份和读写分离,提高系统的性能和可用性。
主从模式的工作原理如下:
- 主节点(Master):主节点是主要的数据写入节点,负责接收客户端的写入操作(写操作包括SET、INCR等),并将写入的数据同步到从节点。
- 从节点(Slave):从节点负责复制主节点的数据。它接收主节点发送过来的写操作命令,并执行相同的写操作,以保持数据的一致性。
- 数据同步:主节点会将写操作的命令发送给所有连接的从节点,从节点执行相同的写操作,从而保持数据同步。
- 只读操作:客户端的只读操作(例如GET等)可以由从节点处理,从而减轻主节点的压力,提高读取性能。
主从模式的优势在于数据备份和读写分离:
- 数据备份:通过复制数据到从节点,即使主节点发生故障,数据仍然可用,并且可以通过从节点恢复数据。
- 读写分离:通过从节点处理只读操作,可以减轻主节点的负担,提高读取性能。
2. 配置
2.1. 配置主节点
注意:不配置默认也是主节点
启动参数方式
在主节点的redis-server执行程序启动时添加--replicaof no one启动参数,表示当前节点为主节点。
redis-server --replicaof no one
配置文件方式
在主节点的redis.conf文件中设置replicaof选项为no one,表示当前节点为主节点。
replicaof no one
2.2. 配置从节点
启动参数方式
在主节点的redis-server执行程序启动时添加--replicaof <master_ip> <master_port>启动参数,设置当前节点的主节点。
如果主节点有密码还需要添加--masterauth <master_password>。
配置文件方式
在从节点的redis.conf文件中设置replicaof选项为主节点的地址和端口。
replicaof <master_ip> <master_port>
如果主节点有密码还需要添加masterauth在redis.conf
masterauth <master_password>
3. 演示
docker-compose.yaml
version: "3.8"
services:redis1:container_name: redis1image: redis:7.0command:- redis-server- --requirepass 123456- --bind * -::*redis2:container_name: redis2image: redis:7.0command:- redis-server- --requirepass 123456- --bind * -::*- --masterauth 123456- --replicaof redis1 6379depends_on:- redis1redis3:container_name: redis3image: redis:7.0command:- redis-server- --requirepass 123456- --bind * -::*- --masterauth 123456- --replicaof redis1 6379depends_on:- redis1
-
进入窗口控制台:
docker exec -it redis1 bash -
控制台内部操作:
root@1c0cccc0d756:/data# redis-cli 127.0.0.1:6379> AUTH 123456 OK 127.0.0.1:6379> INFO replication # Replication role:master connected_slaves:2 slave0:ip=172.18.0.3,port=6379,state=online,offset=1694,lag=0 slave1:ip=172.18.0.4,port=6379,state=online,offset=1694,lag=0 master_failover_state:no-failover master_replid:0158f9bf36c9db3b95829e29139fa71b1ecd2b84 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:1694 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:1694
4. 注意
主从复制是异步的,从节点可能会有一定的延迟。如果主节点故障,可以将一个从节点提升为主节点,继续提供服务。但在进行主从切换时,需要考虑数据一致性和可能丢失的写操作。
相关文章:
Redis | 主从模式
Redis | 主从模式 1. 简介 Redis主从模式(Replication)是Redis提供的一种数据备份和高可用性解决方案。通过主从复制,可以将一个Redis服务器的数据复制到其他多个从服务器,从而实现数据的备份和读写分离,提高系统的性…...
C# Blazor 学习笔记(8):row/col布局开发
文章目录 前言相关文章代码row和col组件B_rowB_col结构 使用 前言 可能是我用的element ui和 uView这种第三方组件用的太多了。我上来就希望能使用这些组件。但是目前Blazor目前的生态其实并不完善,所以很多组件要我们自己写。 我们对组件的要求是 我们在组件化一共…...
金融供应链智能合约 -- 智能合约实例
前提 Ownable:监管者合约,有一个函数能转让监管者。 SupplyChainFin:供应链金融合约,银行、公司信息上链,公司和银行之间的转账。 发票:记录者交易双方和交易金额等的一种记录数据。如:我在超市买了一瓶水,超市给我开了一张发票。 Ownable // SPDX-…...
论文《Contrastive Meta Learning with Behavior Multiplicity for Recommendation》阅读
论文《Contrastive Meta Learning with Behavior Multiplicity for Recommendation》阅读 论文概况论文主要贡献Background & Motivation方法论单行为图神经网络(Behavior-aware GNN)多行为对比学习元对比编码模型训练 实验部分论文总结 论文概况 今…...
K8S 部署 RocketMQ
文章目录 添加模板部署本地访问 集群使用 kubesphere 作为工具 添加模板 添加 helm 模板 helm repo add rocketmq-repo https://helm-charts.itboon.top/rocketmq helm repo update rocketmq-repo编写 value.yaml 文件 配置主从节点的个数,例子为单节点 broker:…...
[Docker]入门之docker-compose
一,Docker-compose简介 1,Docker-compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),…...
SAP ABAP中使用函数ALSM_EXCEL_TO_INTERNAL_TABLE读取EXCEL中不同的SHEET数据
SAP提供了标准的读取EXCEL的函数(ALSM_EXCEL_TO_INTERNAL_TABLE),但是此标准函数无法满足对同一EXCEL 进行不同SHEET的数据读取,一下方法就是教你如何通过修改程序来实现ALSM_EXCEL_TO_INTERNAL_TABLE读取多个SHEET; …...
Rust 编程小技巧摘选(6)
目录 Rust 编程小技巧(6) 1. 打印字符串 2. 重复打印字串 3. 自定义函数 4. 遍历动态数组 5. 遍历二维数组 6. 同时遍历索引和值 7. 迭代器方法的区别 8. for_each() 用法 9. 分离奇数和偶数 10. 判断素数(质数) Rust 编程小技巧(6) 1. 打印…...
如何保证Redis缓存和数据库的一致性问题
熟练掌握Redis缓存技术? 那么请问Redis缓存中有几种读写策略,又是如何保证与数据库的一致性问题 今天来聊一聊常用的三种缓存读写策略 Cache Aside Pattern Cache Aside Pattern 是我们平时使用比较多的一个缓存读写模式,比较适合读请求比…...
【数据分析入门】人工智能、数据分析和深度学习是什么关系?如何快速入门 Python Pandas?
目录 一、前言二、数据分析和深度学习的区别三、人工智能四、深度学习五、Pandas六、Pandas数据结构6.1 Series - 序列6.2 DataFrame - 数据框 七、输入、输出7.1 读取/写入CSV7.2 读取/写入Excel7.3 读取和写入 SQL 查询及数据库表 八、调用帮助九、选择(这里可以参考上一篇文…...
JavaScript 里三个点 ... 的用法
// table表头数据let tableHeadData deepClone(data);let tableCacheData [];//表格缓存对比if (!parent && isCacheHeadData) {// 缓存数据keylet tableCacheKey ${window.location.pathname}-${$self.attr(id)}if (localStorage.getItem(tableCacheKey)) {//根据缓…...
Linux修改系统语言
sudo dpkg-reconfigure locales 按pagedown键,移动红色光标到 zh_CN.UTF-8 UTF-8,空格标记*号(没标记下一页没有这一项),回车。 下一页选择 zh_CN.UTF-8。 如果找不到 dpkg-reconfigure whereis dpkg-reconfigure …...
Spring注解开发
目录 1、简介 2、原始注解 2.1、注解种类 2.2、组件扫描 2.3、具体使用 2.3.1、xml配置 2.3.2、注解配置 3、⭐新注解 3.1、新注解种类 3.2、实践 3.3、运行结果 3.4、警告信息 1、简介 Spring框架提供了许多注解,用于在Java类中进行配置和标记…...
图像处理库(Opencv, Matplotlib, PIL)以及三者之间的转换
文章目录 1. Opencv2. Matplotlib3. PIL4. 三者的区别和相互转换5. Torchvision 中的相关转换库5.1 ToPILImage([mode])5.2 ToTensor5.3 PILToTensor 1. Opencv opencv的基本图像类型可以和numpy数组相互转化,因此可以直接调用torch.from_numpy(img) 将图像转换成t…...
html+Vue+封装axios实现发送请求
在html中使用Vue和Axios时,可以在HTML中引入Vue库和Axios库,然后使用Vue的语法和指令来创建Vue组件和模板。在Vue组件中,你可以使用Axios发送HTTP请求来获取数据,并将数据绑定到Vue模板中进行展示。 <template><div>&…...
GoogLeNet卷积神经网络输出数据形参分析-笔记
GoogLeNet卷积神经网络输出数据形参分析-笔记 分析结果为: 输入数据形状:[10, 3, 224, 224] 最后输出结果:linear_0 [10, 1] [1024, 1] [1] 子空间执行逻辑 def forward_old(self, x):# 支路1只包含一个1x1卷积p1 F.relu(self.p1_1(x))# 支路2包含 1…...
【docker】dockerfile发布springboot项目
目录 一、实现步骤二、示例 一、实现步骤 1.定义父镜像:FROM java:8 2.定义作者信息:MAINTAINER:learn_docker<https://www.docker.com> 3.将jar包添加到容器:ADD jar包名称.jar app.jar 4.定义容器启动执行命令:…...
利用docker run -v 命令实现使用宿主机中没有的命令
利用docker run -v 命令实现使用宿主机中没有的命令 使用容器中的jar命令解压jar包,并将解压内容输出到挂载在宿主机中的目录里 使用容器中的jar命令解压jar包,并将解压内容输出到挂载在宿主机中的目录里 docker run -it --name java -v /www/temp/java…...
【小沐学NLP】在线AI绘画网站(百度:文心一格)
文章目录 1、简介2、文心一格2.1 功能简介2.2 操作步骤2.3 使用费用2.4 若干示例2.4.1 女孩2.4.2 昙花2.4.3 山水画2.4.4 夜晚2.4.5 古诗2.4.6 二次元2.4.7 帅哥 结语 1、简介 当下,越来越多AI领域前沿技术争相落地,逐步释放出极大的产业价值࿰…...
react经验5:访问子组件内容
应用场景 父级需要调用子组件的某函数 实现步骤 案例:创建自定义按钮 button.tsx import { Ref, forwardRef, useImperativeHandle,ReactNode} from "react" declare type ButtonProps {/**按钮文字 */children?: ReactNode,onClick?: () > voi…...
数据处理的艺术:Pandas中的字符串操作
在数据分析和处理的过程中,经常会遇到需要对数据框中的字符串进行复杂操作的情况。本文将通过一个具体的实例,展示如何使用Pandas库来处理字符串列表、去重、合并和计数等操作。 问题背景 假设我们有一个数据框,其中包含一个名为REFIX_LIST的列,该列每个单元格包含由逗号…...
美国低值包裹政策收紧后跨境卖家如何重做运营安全底盘
暗流涌动:跨境物流变局下的生存法则清晨,深圳华强北的某个跨境工作室里,键盘敲击声此起彼伏。屏幕上的订单如往常一样跳动,但运营负责人李薇的眉头却紧锁着。她刚刚收到物流服务商的紧急通知:一批通过“低值货物”通道…...
成本控制实战:OpenClaw+Qwen3.5-9B的Token消耗优化指南
成本控制实战:OpenClawQwen3.5-9B的Token消耗优化指南 1. 为什么需要关注Token消耗? 第一次用OpenClaw执行整夜自动化任务时,早上看到账单差点从椅子上跳起来——单次任务消耗了接近18万Token。这让我意识到,如果不加控制&#…...
新手如何快速掌握多层板设计?从电源PCB叠层结构讲起
引言:从双板板到多层板,你准备好了吗?作为一名硬件工程师,你是否也经历过这样的困惑:刚学会画双板板,项目需求就变成了4层、6层甚至8层板?面对叠层结构的选择,你是否感到无从下手&am…...
手把手搓FPGA版W5500三合一驱动
FPGA W5500 3合一 驱动 UDP、TCP客户端、TCP服务端三合一,8个SOCKET都可用源代码,SPI时钟80m,无时序问题,上手即用 硬件实测,高速、稳定 verilog编写,纯逻辑实现 这块W5500芯片的驱动在项目里被我折腾了半个月…...
基于Matlab的自适应信号滤波降噪:心音信号处理之旅
基于matlab的自适应信号滤波降噪,利用自适应滤波器对心音信号进行降噪,包括了LMS算法,归一化LMS,变步长LMS和RLS算法,其中RLS的降噪效果最好 程序已调通,替换自己的数据可以直接运行在信号处理的领域中&…...
Claude Code代码泄露第二天,Anthropic 把最骚的功能悄悄上线了。
昨天 512,000 行源码裸奔上 npm,今天 /buddy 来了。这到底是发布,还是还在愚人节?昨天发生了什么先帮没跟上的人补个课。3月31日凌晨4点多,有人发现 Claude Code v2.1.88 的 npm 包里藏着一个 59.8 MB 的 .map 文件,而…...
3种简单方法实现Windows与Linux双系统文件无缝共享的终极方案
3种简单方法实现Windows与Linux双系统文件无缝共享的终极方案 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 跨平台文件共享一直是Windows与Linux双系统用户面临的核心痛点。你是否曾…...
CVPR 2024人脸黑科技:3D头像重建如何用单张自拍搞定?附开源项目推荐
CVPR 2024单图3D头像重建技术实战:从算法原理到开源工具落地 当你在社交媒体上传自拍时,是否想过这张平面照片能瞬间转化为可360度旋转的数字化身?CVPR 2024最新研究成果正在让这个想象成为现实——无需专业设备,仅用普通手机拍摄…...
图网络梯度计算与反向传播:自动微分技术的完整指南
图网络梯度计算与反向传播:自动微分技术的完整指南 【免费下载链接】graph_nets Build Graph Nets in Tensorflow 项目地址: https://gitcode.com/gh_mirrors/gr/graph_nets 在深度学习领域,图网络(Graph Networks)凭借其处…...
