写点什么

云小课|云小课教您如何选择 Redis 实例类型

  • 2022-11-30
    中国香港
  • 本文字数:2230 字

    阅读完需:约 7 分钟

云小课|云小课教您如何选择Redis实例类型

本文分享自华为云社区《【云小课】应用平台第40课 云小课教您如何选择Redis实例类型》,作者:阅识风云 。



购买 Redis 实例时,实例类型有单机、主备、Proxy 集群、Cluster 集群和读写分离这么多种,该怎么选?别担心,小课把每个实例类型的特点优势给您一一道来。

Redis 单机实例


单机实例只有 1 个节点,1 个 Redis 进程,当 Redis 进程故障后,DCS 为实例重新拉起一个新的 Redis 进程,秒级恢复业务。


单机实例支持读写高并发,但不做持久化,实例重启时不保存原有数据。


单机实例拓扑图:



单机实例具有以下特点:


  • 系统资源消耗低,支持高 QPS

    单机实例不涉及数据同步、数据持久化所需消耗的系统开销,因此能够支撑更高的并发。Redis 单机实例 QPS 达到 10 万以上。

    单机实例支持多数据库(多 DB,256 个 DB),用于数据隔离。

  • 进程监控,故障后自动恢复

    DCS 部署了业务高可用探测,单机实例故障后,30 秒内会重启一个新的进程,恢复业务。

  • 即开即用,数据不做持久化

    单机实例开启后不涉及数据加载,即开即用。如果服务 QPS 较高,可以考虑进行数据预热,避免给后端数据库产生较大的并发冲击。

  • 低成本,适用于开发测试

    单机实例各种规格的成本相对主备减少 40%以上。适用于开发、测试环境搭建。

Redis 主备实例


Redis 的主备实例在单机实例基础上,增强了服务高可用以及数据高可靠性。


主备实例分片数为 1,包含一个主节点,一个或多个备节点。DCS 实时探测实例可用性,使用哨兵模式(Sentinel)进行管理,监控主备节点是否正常运行,当主节点出现故障时,会进行主备倒换,恢复业务。


主备实例拓扑图:



主备实例具有以下特点:


  • 持久化,确保数据高可靠

    主备实例默认为双副本(一主一备),支持设置为多副本(一主多备),支持多 DB,默认开启数据持久化功能,可保持节点间数据同步。

  • 数据同步

    主备节点通过增量数据同步的方式保持缓存数据一致。

    当网络发生异常或有节点故障时,主备实例会在故障恢复后进行一次全量同步,保持数据一致性。

  • 故障后自动切换主节点,服务高可用

    当主节点故障后,连接会有秒级中断、不可用,备节点在 30 秒内自动完成主备切换,切换完成后恢复正常访问,无需用户操作,保证业务平稳运行。

  • 多种容灾策略

    DCS 支持将主备实例部署在不同的 AZ(可用区)内,节点间电力与网络均物理隔离。您可以将应用程序也进行跨 AZ 部署,从而达到数据与应用全部高可用。

  • 读写分离

    Redis 4.0、Redis 5.0 和 Redis 6.0 基础版主备实例,分别提供了可读写的连接地址(主节点)和只读地址(备节点),在客户端连接时,通过增加用户读写请求判断,将写请求发送给读写域名,读请求发送给只读域名,可实现客户端读写分离。

Redis Cluster 集群实例


Cluster 集群通过分片化分区来增加缓存的容量和并发连接数,每个 Shard 分片默认是一个双副本的 Redis 主备实例,分片本身对外不可见。分片中主节点故障后,同一分片中备节点会升级为主节点来继续提供服务。

Cluster 集群实例拓扑图:



Cluster 集群实例特点:


  • 支持选择不同实例规格(对应不同的 Shard 分片数),在创建实例时,支持自定义分片大小,暂时不支持自定义分片数,默认每个分片为双副本架构,副本数可自定义。

  • Cluster 集群实例,通过使用 cluster nodes 查询所有主备节点,客户端连接备节点,并在节点上做配置,开启备节点只读访问,可实现客户端读写分离,提升缓存的整体读写能力。配置方法请参考Redis实例是否支持读写分离

  • Cluster 集群实例默认 DB 数为 1,不支持开启多 DB。

Redis Proxy 集群实例


Proxy 集群在 Cluster 集群的基础上,增加挂载 Proxy 节点和 Elastic Load Balance (ELB)节点,通过 ELB 节点实现负载均衡,将不同请求分发到 Proxy 节点(Redis 集群代理服务器),实现 Redis 集群内部的高可用,以及承接客户端的高并发请求。


Proxy 集群实例拓扑图:



Proxy 集群实例特点:


  • 支持选择不同实例规格(对应不同的 Proxy 节点数和 Shard 分片数),在创建实例时,支持自定义分片大小,暂时不支持自定义分片数和副本数,默认每个分片为双副本架构。

  • Proxy 集群实例默认默认只有一个 DB,支持开启多 DB,开启多 DB 前需要了解Proxy集群使用多DB限制

  • Proxy 集群实例不支持读写分离。

Redis 读写分离实例


读写分离实例,后端是一个主备实例,默认包含主备两个节点(双副本),支持设置为多副本,即多个备节点。


读写分离实例,在主备实例的基础上,通过 ELB 节点实现负载均衡,将不同请求分发到 Proxy 节点,Proxy 节点识别用户读写请求,如果是写请求,转发给主节点;如果是读请求,则转发给备节点,从服务端侧实现读写分离。


读写分离实例拓扑图:



读写分离实例特点:


读写分离实例除具有主备实例数据持久化,主备节点数据同步等基本特点以外,还支持服务端读写分离,不需要用户在客户端做任何配置。

实例类型对比与总结


小课还贴心的为您将每种实例类型做了以下对比分析,方便您根据自己业务的特点和需求做出选择。


实例类型对比:



实例类型总结:


  • 单机实例不支持数据持久化,主要服务于数据不需要由缓存实例做持久化的业务场景。

  • 在综合性能上,多分片强于单分片,多副本强于单副本。

  • 在负载均衡方面,Proxy 集群和读写分离实例支持负载均衡,实例具有高可用性的同时,只需使用 1 个 IP,无需多个 IP 分别访问每个节点。

  • Redis 单机、主备和读写分离实例默认支持多 DB(256 个 DB),多 DB 主要用于数据隔离。

  • 读写分离主要适用于读高并发、写请求较少的业务场景,解决高并发的性能问题,节约运维成本。

  • 读写分离实例为服务端读写分离,无需用户做任何代码配置,相较与客户端读写分离,使用更方便。


如果您还需要了解实例的内存和 QPS 等规格请戳这里


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
云小课|云小课教您如何选择Redis实例类型_云计算_华为云开发者联盟_InfoQ写作社区