Redis Cluster 是由企业云平台提供的兼容开源 Redis 协议标准的缓存数据库服务,为用户提供即开即用、安全可靠、弹性扩容、便捷易用的在线分布式缓存。

功能特性

  • 安全性

    1. 运行于私有网络内,与其他租户保持 100% 二层隔离,严密保护账户,保障数据安全。

    2. 支持灵活切换 VPC 网络及私有网络。

    3. 提供高性能硬盘和实时副本,数据安全性得到严格保证。

  • 高可用性

    1. 主从同步:支持一主多从及多主多从,方便用户根据自身需求做读写分离、负载均衡。

    2. 自动容灾:宕机自动监测,自动切换,避免单点故障引起的服务中断。

    3. 同城多活:支持多可用区部署,不同节点分散部署在不同区,实现业务容灾。

  • 在线扩容

    1. 支持横向扩容实例的规格或缩容实例规格。

    2. 支持纵向的节点数扩容和缩容,以及副本的扩容和缩容。

  • 监控与告警

    1. 提供了丰富的监控数据,来帮助用户随时了解缓存服务的运行状态和各项指标。 每一项监控都提供了历史监控和实时监控,最短时间间隔可以达到 10s。

    2. 支持对CPU利用率、内存使用率、磁盘使用量、节点服务状态、被拒绝的 Key 个数、Keyspace 未命中数、Client 连接数最大值等多项指标设置监控告警策略。

    3. 支持为 Redis 配置独立的告警通知策略,帮助用户快速定位与解决问题。

  • 用户与权限

    1. 支持可视化的用户新增、修改及删除操作。

    2. 支持配置用户的访问权限控制,严密确保数据安全性。

产品架构

Redis Cluster 基于 开源 Redis 集群,采用无中心架构,对服务器进行分片,每个分片都是主从结构,包含一个主节点(Master)和 N 个从节点(Slave),支持主从复制和主节点自动故障转移,保证了集群的可靠性,适用于海量数据、高并发、高可用场景。

Redis Cluster 的服务架构如下所示。

产品架构

Redis Cluster 工作原理

  • 直连模式

    客户端(Client)直接与后端数据分片连接,无中间代理服务器,可降低网络开销和服务响应时间。客户端不需要连接集群所有分片,连接集群中任何一个可用分片即可。

  • 分片存储

    Redis Cluster 通过分片的方式来保存数据库中的键值对(key)。整个数据库集群使用 16384 个槽(Slot)来管理一段整数集合 (hash值) ,key 属于哪个 Slot,由 Crc16(key) mod 16384 的值决定。每个分片负责其中一部分 Slot,根据 Slot 与分片的映射关系,确定 Key 应该被哪个分片的 Master 所管理。

  • 无中心架构

    集群中的每个分片都是平等关系,都可以接收请求,分片之间互相监听,数据共享,可动态调整数据分布,因此具备一旦有分片退出或者加入,会按照 Slot 为单位做数据的迁移,修改 Slot 与分片的对应关系。例如,加入节点时需要将现有集群中的一部分 Slot 和数据迁移给新节点。

  • 主从结构

    每个分片包含一个 Master 节点和 N 个 Slave 节点,Master 负责读写请求和集群信息的维护,Slave 对 Master 上的数据和状态信息进行复制。当某个 Master 故障不可用时,Redis Cluster 内部将使用投票机制自动将对应的某个 Slave 切换为 Master,以保证集群的可用性。

应用场景

在很多大型电商网站、视频直播和游戏行业等应用中,都存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询的情况。这些场景使用 Redis,在速度上相对传统磁盘数据库有很大优势,能够有效减少数据库磁盘 IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。

  • 游戏应用

    游戏行业对性能、网络反应速度要求极高,Redis Cluster 提供丰富的缓存服务以满足用户游戏场景的非结构化数据存储需求。例如游戏排行榜,可以将排行榜数据存储在 Redis 中进行快速访问,Redis 原生自带的 SortedSet 数据类型能帮助您对玩家数据排序。

  • 电商网站

    电商行业应用在促销活动来临、业务压力大幅增加时,系统整体压力会非常大,使用 Redis Cluster 缓存服务可以大幅减轻系统压力。例如,将商品展示、购物推荐等数据存储在 Redis 中进行快速访问,同时在大型促销秒杀活动中,Redis Cluster 单节点 10万+ QPS 能轻松应对高并发访问。

  • 社交APP

    在 Web 类应用中,将频繁被访问的数据,如 最新评论 之类的数据存放在 Redis 中,会大大提高访问的命中率,并有效减轻后端事务数据库的压力。

  • 视频直播

    视频直播类业务往往会重度依赖 Redis 业务,直播间的在线用户列表、礼物排行榜、弹幕消息等信息,都适合使用 Redis 中的 SortedSet 结构进行存储。Redis Cluster 支持多线程实例,破除 Redis 单线程机制的性能瓶颈,可以有效的应对视频直播类流量突起,对于高性能的需求可以有效的支撑。