Redis 高可用架构最佳实践

Redis 高可用架构最佳实践

《Redis 高可用架构最佳实践》要点:

本文介绍了Redis 高可用架构最佳实践,希望对您有用。如果有疑问redis高可用集群redis高可用集群Redis 高可用架构最佳实践,可以联系我们。

Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日记型、Key-Value 数据库,并提供多种语言的 API.

如今,互联网业务的数据正以更快的速度在增长,数据类型越来越丰富,这对数据处理的速度和才能提出了更高要求.Redis 是一种开源的内存非关系型数据库,给开发人员带来的体验是颠覆性的.在自始至终的设计过程中,都充分考虑高性能,这使得 Redis 成为当今速度最快的 NoSQL 数据库.

考虑高性能的同时,高可用也是很紧张的考虑因素.互联网 7×24 无间断服务,在故障期间以最快的速度 ,能给企业带来最小的损失.

那么,在实际利用中,都有哪些高可用架构呢?架构之间有何优劣?我们应该怎么取舍?有哪些最佳实践?

0x02 原理

在讲解 Redis 高可用计划之前,我们先来看看 Redis 原理是怎么样的.

集群通过给定的配置文件发现 ,启动时会监控 .通过向 发送 info 信息得到该服务器下面的所有从服务器.

集群通过命令连接向被监视的主从服务器发送 hello 信息 (每秒一次),该信息包含 本身的 IP、端口、id 等内容,以此来向其他 宣告自己的存在.

集群通过订阅连接接收其他 发送的 hello 信息,以此来发现监视同一个主服务器的其他 ;集群之间会互相创立命令连接用于通信,因为已经有主从服务器作为发送和接收 hello 信息的中介, 之间不会创立订阅连接.

集群使用 ping 命令来检测实例的状态,如果在指定的时间内(down-after-)没有回复或则返回差错的回复,那么该实例被判为下线.

当 主备切换被触发后, 并不会马上进行,还需要 中的大多数 授权后才可以进行 ,即进行 的 会去获得指定 个的 的授权,成功后进入 ODOWN 状态.如在 5 个 中配置了 2 个 ,比及 2 个 认为 死了就执行 .

向选为 的 slave 发送 NO ONE 命令,选择 slave 的条件是 首先会依据 的优先级来进行排序,优先级越小排名越靠前.如果优先级相同,则查看复制的下标,哪个从 接收的复制数据多,哪个就靠前.如果优先级和下标都相同,就选择进程 ID 较小的.

被授权后,它将会得到宕掉的 的一份最新配置版本号 (-epoch),当 执行结束以后,这个版本号将会被用于最新的配置,通过广播形式通知其它 ,其它的 则更新对应 的配置.

1 到 3 是主动发现机制:

4 是检测机制,5 和 6 是 机制,7 是更新设置装备摆设机制.

0x03 Redis 高可用架构

讲授完 Redis 原理之后,接下来讲授常用的 Redis 高可用架构.

接下来共同图文逐个讲解.

3.1 Redis 集群 + 内网 DNS + 自界说脚本

redis高可用集群

上图是已经在线上环境应用的方案.底层是 Redis 集群,代理着 Redis 主从,Web 端连接内网 DNS 提供服务.内网 DNS 依照一定的规则分配,比如 xxxx.redis.cache/queue.port.xxx.xxx,第一个段表示业务简写,第二个段表示这是 Redis 内网域名,第三个段表示 Redis 类型,cache 表示缓存,queue 表示队列,第四个段表示 Redis 端口,第五、第六个段表示内网主域名.

redis高可用集群

当主节点发生故障,好比机器故障、Redis 节点故障或者网络不可达, 集群会调用– 配置的脚本,修改对应端口的内网域名.对应端口的内网域名指向新的 Redis 主节点.

长处:

毛病:

3.2 Redis 集群 + VIP + 自界说脚本

redis高可用集群

此方案和上一个方案相比,略有不同.第一个方案使用了内网 DNS,第二个方案把内网 DNS 换成了虚拟 IP.底层是 Redis 集群,代理着 Redis 主从,Web 端通过 VIP 提供服务.在部署 Redis 主从的时候,需要将虚拟 IP 绑定到当前的 Redis 主节点.当主节点发生故障,好比机器故障、Redis 节点故障或者网络不可达, 集群会调用 — 配置的脚本,将 VIP 漂移到新的主节点上.

长处:

毛病:

3.3 封装客户端直连 Redis 端口

redis高可用集群

部分业务只能通过外网拜访 Redis,上述两种方案均不可用,于是衍生出了这种方案.Web 使用客户端连接其中一台 Redis 集群中的一台机器的某个端口,然后通过这个端口获取到当前的主节点,然后再连接到真实的 Redis 主节点进行相应的业务员操作.需要注意的是,Redis 端口和 Redis 主节点均需要开放拜访权限.如果前端业务使用 Java,有 可以复用;如果前端业务使用 PHP,可以在 的基础上做二次封装.

长处:

毛病:

3.4 Redis 集群 + /

redis高可用集群

底层是 Redis 集群,代理着 Redis 主从,Web 端通过 VIP 提供服务.当主节点发生故障,好比机器故障、Redis 节点故障或者网络不可达,Redis 之间的切换通过 Redis 内部机制保障,VIP 切换通过 保障.

长处:

毛病:

3.5 Redis M/S +

redis高可用集群

此方案没有使用到 Redis .此方案使用了原生的主从和 ,VIP 切换通过 保障,Redis 主从之间的切换必要自定义脚本实现.

长处:

毛病:

3.6 Redis

redis高可用集群

From:

redis高可用集群

Redis 3.0.0 在 2015 年 4 月 2 日正式发布,距今已有两年多的时间.Redis 集群采用 P2P 模式,无中心化.把 key 分成 16384 个 slot,每个实例负责一部分 slot.客户端哀求对应的数据,若该实例 slot 没有对应的数据,该实例会转发给对应的实例.另外,Redis 集群通过 协议同步节点信息.

长处:

毛病:

3.7

redis高可用集群

From:

多个同构 (配置相同)同时工作,接受客户端的哀求,根据 hash 算法,转发给对应的 Redis.

方案比较成熟了,之前我们团队长期使用此方案,但是效果并不是很抱负.一方面是定位问题比较困难,另一方面是它对自动剔除节点的支持不是很友好.

长处:

毛病:

3.8 Codis

redis高可用集群

From:

Codis 是由豌豆荚开源的产品,涉及组件众多,其中 存放路由表和代理节点元数据、分发 Codis- 的命令;Codis- 是集成管理工具,有 Web 界面供使用;Codis-Proxy 是一个兼容 Redis 协议的无状态代理;Codis-Redis 基于 Redis 2.8 版本二次开发,加入 slot 支持,便利迁移数据.

长处:

毛病:

0x04 最佳实践

所谓的最佳实践,都是最得当具体场景的实践.

主推以下计划:

以下是实战进程中总结出的最佳实践:

欢迎参与《Redis 高可用架构最佳实践》讨论Redis 高可用架构最佳实践,分享您的想法redis高可用集群,维易PHP学院为您提供专业教程。

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » Redis 高可用架构最佳实践

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们