Redis 的 3 种多机服务,都记住了吗?

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 Redis 的 3 种多机服务,都记住了吗?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

前言

1、主从同步

1.1、主从同步理论

 1.2、主从服务器设置

 1.3、主从同步优缺点分析

2、哨兵模式

2.1、哨兵模式理论

2.2、工作原理

3、Redis 集群服务


前言


随着需求的不断发展,单机 Redis 的性能已经不能满足我们的需求了,因此 Redis 从 3.0 推出的新功能——集群服务。

Redis 多机服务主要包含以下 3 个内容:

  • Redis 主从同步
  • Redis 哨兵模式
  • Redis 集群服务(Redis 3.0 推出的新功能)

接下来我们就来看一下这三个内容~

1、主从同步


1.1、主从同步理论

主从同步 也叫 “主从复制”,是 Redis 高效率服务的基石,是多机运行中最基础的一个。这里我们需要明确以下两个定义:

  • 主节点:用来存储数据的结点(Ps:“主从同步”下主节点只能有一个)。
  • 从节点:通过复制主结点数据得到的结点。

 Redis 的 3 种多机服务,都记住了吗?

 

Ps:在 Redis 中一个主节点可以拥有多个从节点,一个从节点也可以是其他服务器的主节点,如下图:

Redis 的 3 种多机服务,都记住了吗?

 1.2、主从服务器设置

在 Redis 运行过程中,可以使用 “replicaof host port” 命令,把自己设置为目标 IP 的从服务器,执行命令如下:

127.0.0.1:6379> replicaof 127.0.0.1 6380
OK

如果主服务器设置了密码,需要在从服务器输入主服务器密码,使用 “config set masterauth 主服务器密码” 命令,如下:

127.0.0.1:6377> config set masterauth 123
OK

 1.3、主从同步优缺点分析

优点:

  • 高性能:设置主从同步后,可以把查询任务分配给从服务器,用主服务器来执行写操作,这样极大的提高了程序运行的效率,把所有压力分摊到了各个服务器。
  • 高可用:设置主从同步后,当主服务器宕机后,可以迅速把从节点提升为主节点,为 Redis 争取了宕机恢复节省了宝贵的时间。
  • 防止数据丢失:当主服务器磁盘损坏后,其他从服务器还保留这相关数据,不至于数据全部丢失。

缺点:

  • 这种模式本身存在一个致命的问题:当朱姐带你崩溃之后,需要人工干预才能恢复 Redis 的正常使用。

2、哨兵模式


2.1、哨兵模式理论

哨兵模式可以用来监控主从服务器结点,并在主从服务器出现问题的适合自动恢复。

假设这样一个场景:假如晚上发生了主从服务器宕机情况,尤其是主从服务器比较多的情况下,如果让人工恢复,时间和难度上都是很大的,因此需要一个自动恢复工具—— Redis Sentinel(哨兵模式),让 Redis 拥有自动容灾恢复能力。

Ps: Redis Sentinel 的最小分配单位是 一主一从

哨兵模式如下图:

Redis 的 3 种多机服务,都记住了吗?

2.2、工作原理

工作原理如下过程:

  1. 首先每个 Sentinel 会以每秒钟 1 次的频率,向已知主服务器、从服务器和其他的 Sentinel 实例,发送一个 PING 命令。
  2. 如果最后一次有效回复 PING 命令的时间超过 “down-after-milliseconds” 所配置的值(默认 30s ),那么这个实例会被 Sentinel 标记为“主观下线”。
  3. 如果一个主服务器被标记为“主管下线”,那么正在监视这个主服务器的所有 Sentinel 结点,要以每秒 1 次的频率确认 主服务器进入了“主观下线”状态。
  4. 如果有足够数量(quorum 配置值)的 Sentinel 在指定的时间范围内同意这一判断,那么这个主服务器被标记为“客观下线”,此时所有的 Sentinel 会按照规则协商自动选出新的主节点。

Ps:一个有效的 PING 回复可以是:+PONG、-LOADING 或者 -MASTERDOWN。如果返回非以上三种回复,或者在指定时间内没有回复 PING 命令,那么 Sentinel 认为服务器返回的回复无效(non-valid)

3、Redis 集群服务


Redis 集群(Redis Cluster)是 Redis 多机运行最完美的终极方案,他的出现可以让我们完全抛弃 主从同步 和 哨兵模式 来实现 Redis 多机运行。

Redis 集群(Redis Cluster)是无代理模式去中心化的运行模式,客户端发送的绝大数命令会直接交给相关结点执行,这样大部分情况请求命令无需转发,或仅需转发一次的情况下就能完成请求与响应,所以集群单个结点的性能与单机的 Redis 服务器的性能是非常接近的,因此理论情况下。当水平扩展一倍的主节点就相当于请求处理的性能也提高了一倍,所以 Redis 集群 的性能是非常高的。

Redis 集群的架构图如下:

Redis 的 3 种多机服务,都记住了吗?

 分析:

        Redis 的主从同步只能有一个主节点,而 Redis 集群可以拥有无数个主从结点,因此 Redis 集群有更强大的平行扩展能力,也就是说 Redis 集群 有两个主从节点时,从理论上来讲 Redis 的性能相比于单机服务来说新能提高了两倍。

Redis 的 3 种多机服务,都记住了吗?

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/129770.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!