搭建redis主从复制(读写分离)

2023-11-18

一、主从复制原理

在搭建redis读写分离架构时,master必须开启持久化。(可参考博客,RDB和AOF持久化策略一起使用也行Redis的持久化机制(RDB和AOF)(1)_p&f°的博客-CSDN博客

一旦master宕机,虽然slave可以继续提供读服务。但等到master恢复,由于没有持久化,内存里面没有任何数据,master再次做数据同步的时候,会把slave里的数据清空。

二、本博客实现的redis主从复制架构

(三台虚拟机均需要安装redis,请看redis在CentOs服务器上的安装和设置开机自启动_p&f°的博客-CSDN博客

三、具体实现

1、先配置129从机。进入redis主配置文件夹

cd /usr/local/redis/

vim redis.conf

找到如下位置,配置redis.conf从节点

①设置连接主节点的ip和接口

②设置连接主节点redis的密码

 ③设置从节点为只读

 2、下面来验证129这个从节点是否设置成功。

①在重启redis使得配置生效前,先确保持久化文件夹下没有appendonly.aof和dump.rdb文件。这两个文件就是用来持久化的,如果从机第一次装redis默认是没有的,如果有的话删除就好了,避免影响后面测试结果。我这里之前设置过是有的。rm删除即可。

(如果找不到位置,请查看Redis的持久化机制(RDB和AOF)(1)_p&f°的博客-CSDN博客

中的RDB的配置第一条 1. 保存位置)

且确保129从机的redis中没有任何数据

 ② 进入到151主机中,查看已有的数据

 输入info replication 查看当前是否有主从redis

 3、 进入从机129中重启redis

/etc/init.d/redis_init_script stop

/etc/init.d/redis_init_script start

① 此时查看持久化文件夹,主机redis的持久化文件appendonly.aof和dump.rdb已被同步过来

 登录从机的redis,查看 keys * 。此时已将主节点redis中的数据同步过来

 继续输入info replication,查看从机redis的情况

 ② 切换回主机151中,查看主机redis情况,对比上面第2 ②步一开始没有设置从机时,主机redis的情况


4、此时一主一从(151主,129从)的redis配置已经完成,下面来配置130从节点,与129从节点其实是一样的,参考上面配置129从节点过程即可。

5、此时进入151主机,查看将看到两台从机redis

 搭建完的小伙伴可以自行测试以下三个结论:

  • 如果,你在主机中新增key,两台从机中也会同步。
  • 如果,你把其中一台从机redis关闭(宕机),主机redis中新增加的key,会在宕机的从机的redis重启后,再同步过来。
  • 如果,主机redis宕机,从机不会替代主机redis,而是等待主机redis重启后,继续作为主机的从机

题外扩展:Redis无磁盘化复制 

一、无磁盘化复制原理

 

 二、配置无磁盘化复制开启(还是在redis.conf配置文件中)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建redis主从复制(读写分离) 的相关文章

  • 一个大连接或多个查询哪个提供更好的性能?

    我有一个名为订单的表 订单上的一列是 customer id我有一个名为 customers 的表 有 10 个字段 给定两个选项 如果我想构建订单对象数组并嵌入订单对象中的是客户对象 我有两个选择 选项1 A 首先查询订单表 b 循环遍历
  • cdb - 大文件(数百 GB)的常量键值存储

    我需要一个类似于 cdb 常量数据库 的工具 它允许我在索引文件中存储大量数据 数百 GB 范围内 CDB 是理想的候选者 但它有 2 GB 的文件大小限制 因此不适合 我正在寻找的功能是支持二进制键和值的持久键值存储 创建后数据库是只读的
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • 如何高效地将数十亿数据插入Redis?

    我有大约 20 亿个键值对 我想将它们有效地加载到 Redis 中 我目前正在使用 Python 并使用 Pipe 如redis py https redis py readthedocs io en latest redis Redis
  • DB2连接授权失败原因:Java不支持安全机制

    我正在尝试使用 DB2JDBC Type4 驱动程序配置 DB2 连接 但我收到这个错误 线程 main 中的异常 com ibm db2 jcc am SqlInvalidAuthorizationSpecException jcc t4
  • 如何在 PostgreSQL 中将数据库从一台服务器移动到另一台服务器?

    我正在尝试将数据库从旧服务器移动到新服务器 任何帮助 将不胜感激 Just pipe http www postgresql org docs current interactive migration html从旧服务器转储到新服务器 p
  • 什么是数据库池?

    我只是想了解数据库连接池的概念以及它是如何实现的 数据库联系池是一种用于保持数据库连接打开的方法 以便其他人可以重用它们 通常 打开数据库连接是一项昂贵的操作 尤其是在数据库位于远程的情况下 您必须打开网络会话 进行身份验证 检查授权等等
  • 如何在Redis中使用HSCAN命令?

    我想在我的作业中使用 Redis 的 HSCAN 命令 但我不知道它是如何工作的 Redis 的官方页面 http redis io commands hscan http redis io commands hscan 这个命令给了我空白
  • fetchsize和batchsize对Spark的影响

    我想通过以下方式控制 RDB 的读写速度Spark直接 但标题已经透露的相关参数似乎不起作用 我可以得出这样的结论吗fetchsize and batchsize我的测试方法不起作用 或者它们确实会影响阅读和写作方面 因为测量结果基于规模是
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 如何在列上创建外键,该列的每条记录都可能引用多个表之一中的列?

    我正在创建一个社交网络 它有新闻 照片等多个实体 可以有评论 由于所有评论都具有相同的列并且行为方式相同 唯一的区别是它们的类型 新闻 照片或将来添加的其他内容 我决定为所有评论创建一个表 其中的列名为type 它工作得很好 直到我决定将外
  • APEX 安装失败,PLS-00201:必须声明标识符“SYS.DBMS_DB_VERSION”

    尝试在 Oracle XE 18c 数据库上安装 Oracle APEX 20 2 如下官方说明 https docs oracle com en database oracle application express 20 1 htmig
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • 为什么Redis SET性能优于GET?

    根据Redis基准 http redis io topics benchmarkss Redis 可以执行 100 000 SET 操作 秒和 80 000 GET 操作 秒 Redis 是一种内存数据库 这似乎令人惊讶 因为通常人们会认为
  • 在触发期间更新 oracle 中的同一行?

    简短的问题 因为我不知道如何搜索这个 我可以 重新更新 同一行吗 例如 我有一个存储付款小计的字段 并且考虑到我的业务限制 我可以更新该值 我可以仅用触发器更新同一行的总计吗 预先谢谢您 顺便说一句 我正在使用 Oracle 和 PL SQ
  • 有没有多核利用NoSQL系统?

    我从昨天开始就开始使用 MongoDB 并且非常喜欢它 我正在尝试导入大量数据 20 亿行 并为其建立索引 但它似乎没有使用我的系统拥有的 8 个核心 并且导入以正常速率 60000 条记录 秒 进行 我只能想象索引这个集合中的两列可能需要
  • HTML5 数据库存储(SQL lite) - 几个问题

    你好 我在网上找不到足够的关于 HTML5 数据库存储使用示例 CRUD 的初学者资源 我正在像这样打开 创建 我的数据库 var db document ready function try if window openDatabase
  • 如何在首次运行时填充大型 SQLite 数据库

    我正在开发一个基于 SQLite 数据库的字典应用程序 该数据库包含超过 300 000 行 问题在于 最终形式的数据库文件由全文索引表组成 并且重量远远超过150Mb 我通过创建无内容的 fts4 表设法将 db 文件大小降至最低 数据库
  • @GenerateValue(strategy = GenerationType.SEQUENCE) 和 startVaule

    当在 Hibernate 中使用 GeneeratedValue Annotation 并向数据库添加新实体时 它的 id 为 1 n 是否可以设置第一个值 以便获得 id 例如10000 n 序列样式生成器应该做到这一点 Generate
  • 如何在Redis中存储聚合目录树搜索结果

    我有一个很大的产品目录树 目前包含约 36000 个类别和约 100 万个产品 即叶子 它的结构如下 最大深度为 5 Cat1 Cat11 Cat111 Cat1111 Product1 Cat1112 Product1 Cat1113 P

随机推荐

  • CentOS常用zip压缩和解压缩命令

    1 压缩文件夹为zip文件 root cgls zip r mydata zip mydata 2 把mydata zip解压到mydatabak目录里面 root cgls unzip mydata zip d mydatabak 3 m
  • 电脑开机后,显示屏无信号怎么处理?

    转自 微点阅读 https www weidianyuedu com 随着使用电脑的用户越来越多 而使用的用户遇到的问题就越多了 而经常用电脑的同学大部分都遇到过电脑显示器无信号的情况吧 其实相比显示器没有任何显示而言 电脑显示器无信号的故
  • SQLServer如何统计每两小时的值

    把当前时间的 时分转为数字 select CONVERT FLOAT replace CONVERT VARCHAR 6 GETDATE 108 思路 select sum 数字 年月日 小时 2取整 from 表 group by 年月日
  • kafka学习笔记(一)简介

    这是对我找到的学习资料的整理 非手打 参考 https kafka apachecn org intro html https blog csdn net weixin 39468305 article details 106346280
  • Cannot forward after response has been committed问题解决及分析

    通过TOMCAT把系统启动 可以正常登陆门户 登陆进去选择子系统的时候点击登陆的时候 可是去又回到了登陆界面 如此反复就是不能够进入子系统 查看后台报的错误 Cannot forward after response has been co
  • 数据库密码忘记了怎么办

    修改数据库密码 方法1 用SET PASSWORD命令 首先登录MySQL 格式 mysql gt set password for 用户名 localhost password 新密码 例子 mysql gt set password f
  • 应急响应-账户排查

    用户信息排查 在服务器被入侵之后 攻击者可能会建立相关账户 方便进行远程控制 主要采用一下几种 直接建立一个新用户 有时候为了混淆视听 账户名称和系统常用名相似 激活一个系统中的默认用户 但是这个用户不经常使用 建立一个隐藏用 在windo
  • java-通过ip获取地址

    添加maven依赖
  • 关于ArcMap中打开ArcToolbox导致闪退的解决办法

    最近好久不用ArcGis的小编要用到ArcMap去发送一个GP服务 发现按照套路打开ArcMap点击ArcToolbox时 发生了ArcMap的闪退现象 几经周折终于解决了问题 希望也遇到这类问题的同学能够参考解决 而不是无脑的去重装软件
  • C# 实现ESC退出窗口的几种方法

    实现ESC退出窗口的几种方法 引言 方法一 同步按钮法 方法二 监听按键法 方法三 隐藏按钮法 最后 引言 我们通常用通过点击取消按键或者右上角的 X 盒子退出的方法来实现关闭当前Form窗体 但要使用按键ESC退出关闭窗口就显得更加高级了
  • 解决SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]的方案!!!!!

    目录 前提 一 安装maven helper插件 1 安装 2 安装成功 3 使用 二 去掉冲突的依赖包 1 前面已找到目标依赖 去pom文件内操作 2 去除 3 最后就可以了 前提 今天单元测试遇到了jar包冲突 SLF4J Class
  • 自己学驱动17——ARM工作模式和ARM9寄存器

    1 ARM体系CPU的7种工作模式 1 用户模式 usr ARM处理器正常的程序执行状态 2 快速中断模式 fiq 用于高速数据传输或通道处理 3 中断模式 irq 用于通用的中断处理 4 管理模式 svc 操作系统使用的保护模式 5 数据
  • 【Python】PyCharm中调用另一个文件的函数或类

    欢迎来到Python专栏 PyCharm中调用另一个文件的函数或类 o o 嗨 我是小夏与酒 博客主页 小夏与酒的博客 该系列文章专栏 Python学习专栏 文章作者技术和水平有限 如果文中出现错误 希望大家能指正 欢迎大家关注 目录 Py
  • 数据结构:栈

    文章目录 栈 一 概述 二 添加数据 三 删除数据 栈 一 概述 栈 Stack 是一种特殊的线性表 它只允许在一端进行插入和删除操作 通常被称为 后进先出 Last In First Out LIFO 的数据结构 栈由一系列元素组成 每个
  • python常见的三种格式化输出

    Author Father Teng Name input name Age int input age Job input job info info of 0 Name 0 Age 1 Job 2 format Name Age Job
  • 【源码改造】Flink-jdbc-connector源码简析+改造支持谓词下推

    一 需求背景分析 flink sql在维表关联时 会有一个场景 当右表的数据量比较大且有些数据虽然符合join条件 但其实对于下游来说数据可能没用 这样就浪费了flink的计算资源 且拉低了数据处理能力 如果在join前就把维表的数据进一步
  • rac术语小结

    author skatetime 2010 03 01 rac术语小结 CSS 集群同步服务 Cluster Syncronization Service 功能 Manages the cluster configuration by co
  • 一文搞定SpringSecurity+vue前后端分离

    我好菜啊 学了好几天才明白一点点 前言 把v部落git下来学一学 比起halo来说v部落会更加简单好懂一点 我看他用了SpringSecurity来做登录验证 那第一步就是学学这个SpringSecurity 然后我就发现了 我真的是太菜了
  • Linux如何强制关闭任务进程(Linux版任务管理器)

    问题描述 有时我们在使用Linux软件时会碰到软件卡死或者软件BUG无法退出 如何像使用Windows任务管理器一样去关闭应用呢 其实不需要通过重启系统来解决此类问题 只需要按照如下步骤即可解决 解决方案 第一步 打开Terminal终端控
  • 搭建redis主从复制(读写分离)

    一 主从复制原理 在搭建redis读写分离架构时 master必须开启持久化 可参考博客 RDB和AOF持久化策略一起使用也行Redis的持久化机制 RDB和AOF 1 p f 的博客 CSDN博客 一旦master宕机 虽然slave可以