目录
前言
随着需求的不断发展,单机 Redis 的性能已经不能满足我们的需求了,因此 Redis 从 3.0 推出的新功能——集群服务。
Redis 多机服务主要包含以下 3 个内容:
- Redis 主从同步
- Redis 哨兵模式
- Redis 集群服务(Redis 3.0 推出的新功能)
接下来我们就来看一下这三个内容~
1、主从同步
1.1、主从同步理论
主从同步 也叫 “主从复制”,是 Redis 高效率服务的基石,是多机运行中最基础的一个。这里我们需要明确以下两个定义:
- 主节点:用来存储数据的结点(Ps:“主从同步”下主节点只能有一个)。
- 从节点:通过复制主结点数据得到的结点。
Ps:在 Redis 中一个主节点可以拥有多个从节点,一个从节点也可以是其他服务器的主节点,如下图:
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 的最小分配单位是 一主一从。
哨兵模式如下图:
2.2、工作原理
工作原理如下过程:
- 首先每个 Sentinel 会以每秒钟 1 次的频率,向已知主服务器、从服务器和其他的 Sentinel 实例,发送一个 PING 命令。
- 如果最后一次有效回复 PING 命令的时间超过 “down-after-milliseconds” 所配置的值(默认 30s ),那么这个实例会被 Sentinel 标记为“主观下线”。
- 如果一个主服务器被标记为“主管下线”,那么正在监视这个主服务器的所有 Sentinel 结点,要以每秒 1 次的频率确认 主服务器进入了“主观下线”状态。
- 如果有足够数量(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 的主从同步只能有一个主节点,而 Redis 集群可以拥有无数个主从结点,因此 Redis 集群有更强大的平行扩展能力,也就是说 Redis 集群 有两个主从节点时,从理论上来讲 Redis 的性能相比于单机服务来说新能提高了两倍。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/129770.html