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 服务重启后,从节点配置会失效,使用配置文件,则能保证重启不失效。文章来源地址https://www.toymoban.com/news/detail-410766.html

# 编辑主机 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 主从复制缺点

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

到了这里,关于Redis 如何配置读写分离架构(主从复制)?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql 主从复制、读写分离

    目录 前言 一、主从复制原理 1.1 MySQL的复制类型 1.2 mysql主从复制的工作原理 1.3 MySQL主从复制延迟 1.4 MySQL四种同步方式 1.5 MySQL支持的复制类型 二、 MySQL应用场景 三、主从复制实验 3.1 MySQL主从服务器时间同步 3.1.1 安装ntp、修改配置文件 3.1.2 两台SLAVE服务器配置 3.2 配置主从

    2024年02月16日
    浏览(27)
  • Mysql-主从复制与读写分离

    1.在企业应用中,成熟的业务通常数据量都比较大 2.单台MySQL在安全性、 高可用性和高并发方面都无法满足实际的需求 3.配置多台主从数据库服务器以实现读写分离 1.MySQL的复制类型 基于语句的复制(STATEMENT, MySQL默认类型) 基于行的复制(ROW) 混合类型的复制(MIXED) 2. MySQL主从复制

    2024年02月15日
    浏览(31)
  • MySQL主从复制与读写分离

    STATEMENT∶基于语句的复制。在服务器上执行sql语句,在从服务器上执行同样的语句,mysql默认采用基于语句的复制,执行效率高。 ROW∶ 基于行的复制。把改变的内容复制过去, 而不是把命令在从服务器上执行一遍。 MIXED∶混合类型的复制。默认采用基于语句的复制,一旦发

    2024年02月05日
    浏览(34)
  • MySQL 主从复制与读写分离

    MySQL 主从复制与读写分离 1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 2、为什么要读写分离呢?读快写慢

    2024年02月06日
    浏览(32)
  • 【简单认识MySQL主从复制与读写分离】

    在企业应用中,成熟的业务通常数据量都比较大 单台MySQL在安全性、 高可用性和高并发方面都无法满足实际的需求 配置多台主从数据库服务器以实现读写分离 1、 MySQL的复制类型 基于语句的复制(STATEMENT, MySQL默认类型) 基于行的复制(ROW) 混合类型的复制(MIXED) 2、 MySQL主从复制

    2024年02月15日
    浏览(79)
  • Docker 搭建MySQL主从复制-读写分离

    MySQL主从复制是一种常用的数据库高可用性解决方案,通过在主数据库上记录的数据变更,同步到一个或多个从数据库,实现数据的冗余备份和读写分离。在Docker环境下搭建MySQL主从复制和读写分离,不仅方便管理,还能充分发挥Docker的轻量、可移植性等特性。 在开始搭建之

    2024年02月22日
    浏览(34)
  • 【MySQL数据库】主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月11日
    浏览(45)
  • 【数据库】mysql主从复制与读写分离

      读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE ),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。   因为数据库的\\\"写”(写10000条数据可能要3分钟)操作是比较耗时的。   

    2024年02月11日
    浏览(58)
  • MySQL数据库 主从复制与读写分离

    读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。 但是数据库

    2024年02月10日
    浏览(35)
  • MySQL 主从复制[异步 同步 半同步复制] 读写分离 优化 (非常重要)

    1、什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 2、为什么要读写分离呢? 因为数据库的“写”(写10000条数据

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包