当前位置: 首页 > news >正文

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

文章目录

  • 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# 将保护模式改为 no
protected-mode no# 使用 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.lryc.cn/news/60467.html

相关文章:

  • 代码随想录二刷day05 | 哈希表之242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
  • 2023年4月广东省计算机软考中/高级备考班招生简章
  • 在Github中77k星的王炸AutoGPT,会独立思考,直接释放双手
  • FVM链的Themis Pro,5日ido超百万美元
  • OpenCV实战——尺度不变特征检测器
  • 如何快速建立一个podman环境
  • 计算机视觉:人工智能领域当下火热的计算机视觉技术综述
  • EMC 专用名词大全~骚扰波形
  • 14:24面试,14:32就出来了 ,问的实在是太...
  • 高频算法题
  • AI工程师眼中的未来 | 年轻人如何求职选方向
  • 能自动翻译的软件-最精准的翻译软件
  • 7.1 大学排行榜分析(project)
  • TensorFlow 2.0 的新增功能:第三、四部分
  • 第1章 如何听起来像数据科学家
  • 哈希表题目:在系统中查找重复文件
  • 机器人感知与控制关键技术及其智能制造应用
  • 精通线程池,看这一篇就够了
  • 解决图片、视频地址加密问题
  • GPT引领学习之旅:一篇让程序员轻松掌握Elasticsearch的攻略
  • 23种设计模式-仲裁者模式(Android应用场景介绍)
  • 【数据统计】— 极大似然估计 MLE、最大后验估计 MAP、贝叶斯估计
  • Zookeeper学习笔记
  • go语言切片做函数参数传递+append()函数扩容
  • 2023.04.16 学习周报
  • 【面试】如何设计SaaS产品的数据权限?
  • ansible管理变量
  • 一种轻量级日志采集解决方案
  • 【源码】Spring Cloud Gateway 是在哪里匹配路由的?
  • BAT批处理基本命令