Redis 如何配置读写分离架构(主从复制)?

news/2024/5/11 2:58:06/文章来源:https://blog.csdn.net/chenfei3306/article/details/130027955

文章目录

  • Redis 如何配置读写分离架构(主从复制)?
    • 什么是 Redis 主从复制?
    • 如何配置主从复制架构?
      • 配置环境
      • 安装 Redis 步骤
    • 通过命令行配置从节点
    • 通过配置文件配置从节点
    • redis 主从复制优点
    • redis 主从复制缺点

Redis 如何配置读写分离架构(主从复制)?

如果你的 redis 实际应用场景是读多写少,那么读写分离的架构就比较适合,能够显著的提升读的性能

什么是 Redis 主从复制?

实际上就是 Redis 对数据除持久化之外的一种数据冗余备份机制。(能够在主节点出现故障时,通过其他手段让从节点快速提升为主节点提供服务以实现故障的恢复。)在读多写少的场景下,主从复制能够做到读写分离,提高 Redis 的负载均衡能力。

如何配置主从复制架构?

以下面这张图为例,简单进行 Redis 的主从配置。

在这里插入图片描述

配置环境

以下配置,仅仅表示我的配置环境,读者可以根据自己的环境进行配置。

注意:需要把主机的防火墙关闭或者把 6379 端口对外放开

  • 三台 Linux 主机(CentOS 7 版本),ip 分别为:10.211.55.6, 10.211.55.7, 10.211.55.8
  • 在每台主机上安装 Redis(3.2.12 版本),可以使用 yum 进行安装
  • 选择 10.211.55.6 主机的 Redis 作为主节点
  • 选择 10.211.55.7 和 10.211.55.8 主机的 Redis 作为从节点

安装 Redis 步骤

这里只提供 yum 的安装方式

# 安装 Redis
yum install redis# 配置外部访问
vim /etc/redis.conf# 将 bind 127.0.0.1 修改为如下
bind 0.0.0.0# 使用 systemctl 管理 Redis 服务
systemctl enable redis# 启动 Redis
systemctl start redis

通过命令行配置从节点

分别在三台 CentOS 主机上面启动 Redis 服务,使用 redis-cli 进入 Redis 控制台,键入role命令,可以查看该 Redis 节点的角色情况,如下所示,第一行表示该节点的角色为 master,第二行表示数据复制的 offset,第三行表示从节点的集合。可以看到,目前三个 Redis 节点的角色都是 master。

127.0.0.1:6379> role
1) "master"
2) (integer) 0
3) (empty list or set)

执行如下命令,将两台 Redis 节点设置为 10.211.55.6 的从节点:

# 登陆 10.211.55.7 主机的 Redis 控制台
slaveof 10.211.55.6 6379# 登陆 10.211.55.8 主机的 Redis 控制台
slaveof 10.211.55.6 6379

分别在三台主机的 Redis 控制台,执行role命令,查看各自的角色情况。从节点的状态信息如下:

127.0.0.1:6379> role
1) "slave"
2) "10.211.55.6"
3) (integer) 6379
4) "connected"
5) (integer) 1

主节点的状态信息如下:

127.0.0.1:6379> role
1) "master"
2) (integer) 29
3) 1) 1) "10.211.55.8"2) "6379"3) "29"2) 1) "10.211.55.7"2) "6379"3) "29"

在主节点控制台进行 Redis 操作,测试从节点的数据变化,可以观察到从节点同步了主节点的数据。

# 主节点执行
set foo bar# 从节点执行
get foo

通过配置文件配置从节点

命令行配置的从节点,在从节点 Redis 服务重启后,从节点配置会失效,使用配置文件,则能保证重启不失效。

# 编辑主机 10.211.55.7 和 10.211.55.8 的 /etc/redis.conf 配置文件添加如下配置
vim /etc/redis.conf
slaveof 10.211.55.6 6379# 重启从节点 Redis 服务
systemctl restart redis

redis 主从复制优点

  • 主从配置简单,能够做到数据冗余备份
  • 负载均衡,能够做到读写分离,提高整个节点的吞吐能力

redis 主从复制缺点

  • 不能自动的进行故障转移(在主节点失效时,从节点无法自动变换为主节点,需要通过其他的手段)
  • 数据的同步需要一个时间窗口,可能会导致从节点数据的暂时不一致
  • 在主节点发生故障时,数据还未来得及进行同步时,从节点的数据会与主节点的数据不一致
  • 单个主节点还是会出现缓存数据量过大的问题

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git仓库集成到VScode

前提是一种安装了Git,这里就不再介绍安装过程,进入Git官网进行下载安装即可。 这里用Gitee作为远程仓库演示,首先在gitee上新建仓库 新建完毕,生成了HTTPS地址,复制该远程仓库地址。 来到vscode,在没有仓库…

五.microchip 代理贝能的sam d51(LQFP100PIN)与LAN9253 电机控制开发板使用总结(3)

五.microchip 代理贝能的sam d51(LQFP100PIN)与LAN9253 电机控制开发板使用总结(3) 3.4 板子相关外设配置 3.4.1 板子MCU硬件 的LAN9253连接接口 pin numpin idcus_namefuncmodedirlatchpush uppush downdir str1PA00GPIO_PA0_D0GPIOINYNORMAL2PA01GP…

leetcode:只出现一次的数字 Ⅲ(详解)

前言:内容包括:题目,代码实现,大致思路,代码解读 题目: 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任…

DOS批处理文件---内嵌参数变量扩充功能

1 内嵌参数变量 1.1 介绍 内嵌参数变量指:%i,其中i为大于等于0的整数。如%0, %1, %2,... 1.2 作用 可以客制化功能。 1.3 案例 批处理文件:main_Param.bat echo off && setlocal ENABLEDELA…

Solidworks学习一

目录页面介绍:视图操作:实例圆柱:直线的绘制:草图的保存和不保存:绘制工具:切线弧:转换实体引用:交叉曲线:等距实体:移动复制:约束:约…

MyBatisPlus-DQL编程控制

MyBatisPlus-DQL编程控制3,DQL编程控制3.1 条件查询3.1.1 条件查询的类3.1.2 环境构建3.1.3 构建条件查询3.1.4 多条件构建3.1.5 null判定3.2 查询投影3.2.1 查询指定字段3.2.2 聚合查询3.2.3 分组查询3.3 查询条件3.3.1 等值查询3.3.2 范围查询3.3.3 模糊查询3.3.4…

一起学 WebGL:动态绘制点

大家好,我是前端西瓜哥。上一篇文章讲解了如何绘制一个点。但这个点的信息是写死在渲染器源码中的,也就是硬编码。 这是系列文章,如果你是初学者,你需要看上一篇文章才好理解这节课的内容。 《一起学 WebGL:绘制一个点…

python五角星编程代码绘制

大家好,我是你们的好朋友,今天继续分享 Python的编程知识。 在 Python中,有一个非常强大的数据可视化工具: database. dl (),其中有一个功能就是可以绘制五角星。 什么是五角星? 在数…

jenkins配置插件发版了解

jenkins配置&插件&发版了解 jenkins https://mirrors.jenkins.io/war-stable/2.222.1/ 包下载地址 jenkins镜像源修改 sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mi…

怎么使用思维导图?

回答这个问题前,我们先来了解下三个问题: 1.思维导图是什么? 思维导图,又名心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效同时又很高效,是一种实用性的思维工具&#xff08…

Ubuntu22.04中安装PyCharm

目录 1. 在ubuntu中下载linux版本的PyCharm。 2. 将下载好的pycharmxxxx.tar.gz文件解压。 3. 在解压后的pycharm文件夹下的bin文件夹下(此处为:pycharm-edu-2021.1.2/bin),在空白处右键,然后选择”在终端打开“。然…

蓝桥杯第26天(Python)考前挣扎

题型: 1.思维题/杂题:数学公式,分析题意,找规律 2.BFS/DFS:广搜(递归实现),深搜(deque实现) 3.简单数论:模,素数(只需要…

使用 LifseaOS 体验 ACK 千节点分钟级扩容

作者:阿里云 ACK 和操作系统团队 三年前的云栖大会上,LifseaOS 正式发布,这是一款专为云原生场景而垂直优化的操作系统发行版,即业界统称的 ContainerOS。初始发布时,它提供了如下几个突出的特性:轻量&…

guitar pro8.1免费的吉他学习辅助软件

从名字上看就知道这是一款针对吉他谱开发的软件,相信大多数吉他爱好者都用过或者听过这款软件。可以通过鼠标和键盘的操作对吉他谱的内容进行输入,支持四线谱,五线谱、六线谱等曲谱的制作。软件涵盖了几乎所有的吉他演奏技巧符号,…

OpenCV实战(17)——FAST特征点检测

OpenCV实战(17)——FAST特征点检测0. 前言1. FAST 特征点检测2. 自适应特征检测3. 完整代码小结系列链接0. 前言 Harris 算子根据两个垂直方向上的强度变化率给出了角点(或更一般地说,兴趣点)的数学定义。但使用这种定义需要计算图像导数&am…

Delphi 彻底搞懂 Unix/Linux 时间格式及平台间转换

目录 一、TDateTime 时间格式 二、Unix/Linux的日期和时间格式 三、Delphi中操作Unix/Linux格式的日期和时间 1. TDateTime 转 Unix/Linux格式 2. Unix/Linux格式 转 TDateTime 3. 与腾讯、阿里等平台(简称:平台)时间转换 四、Delphi…

秋招笔试知识点

1、计算出结构体大小(对齐规则) struct st { char name; int age; double money; }s; 规则(字节对齐) 1、 char 从0开始,0是任何数字的整数倍 int 是4个字节,4开始 double 是8个字节,从8开…

人人开源快速搭建后台(踩过的大坑,已解决)

目录 一、renrenfast后端代码导入idea后pom文件中的plugins报错 二、后端yaml配置出现问题 三、启动后端出现404 四、在vscode终端上运行 npm 会询问 “你要如何打开这个文件“ 五、npm install失败 一、renrenfast后端代码导入idea后pom文件中的plugins报错 亲测有效 谷…

ToBeWritten之汽车信息安全威胁建模

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

itop-3568开发板驱动学习笔记(9)高级字符设备(三)信号驱动 IO

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录应用层信号机制应用层开启异步通知驱动层异步通知接口实验代码信号驱动 IO 不需要像 poll 一样查询设备的状态,一旦设备有目标事件发生,就会触发 SIGIO 信号,然后处理信号…