什么是 Azure Redis 缓存?
首先了解 Azure Cache for Redis 简要概述。 此信息将帮助你确定此解决方案是否适用于你的组织。
什么是 Redis?
Redis 是一种广泛使用的开放源代码高速缓存解决方案。 它是在内存中运行的键值数据存储,可更快地访问数据。
通常,组织使用 Redis 来辅助其数据库应用程序。 将 Redis 与后端数据库相结合,可显著提高应用程序的性能。
高速缓存解决方案的作用是什么?
任何高速缓存解决方案都应满足以下四个关键要求:
- 性能。 任何高速缓存解决方案的主要作用都是:在高负载情况下提高性能。 理想情况下,此解决方案应提高吞吐量,减少延迟。
- 可伸缩性。 系统必须根据负载变化情况及时响应。 在虚构的制鞋公司中,促销时或在一年的特定时间,可能会出现需求激增的情况。 系统应在不停机的情况下自动进行扩展。
- 可用性。 任何高速缓存解决方案都必须具有高可用性。 可用性有助于确保即使发生组件故障,应用程序也能提供最高性能。
- 地理分布支持。 高速缓存解决方案在世界各地都能提供同样的性能和扩展优势是非常重要的。 如果数据地理位置分散,则此要求可能极具挑战性。
Azure Cache for Redis 定义
使用 Azure Cache for Redis,可将 Redis 用作完全托管服务。
注意
Azure Cache for Redis 可以托管服务形式提供 Redis 开放源代码 (OSS Redis) 和 Redis Labs 的商业产品 (Redis Enterprise),具体取决于你选择的层级。
Azure Cache for Redis 可提供以下应用程序体系结构模式:
数据缓存。 数据库通常太大而无法直接加载到缓存中,这就是为什么通常使用缓存端模式。 此模式仅根据需要将数据加载到缓存中。
内容缓存。 大多数网页都包含静态项,如页眉、页脚和不经常更改的横幅。 相对于访问后端数据存储,通过使用内存中内容缓存,可快速访问静态内容。
会话存储。 此模式通常用于购物车或基于用户历史记录数据的其他数据。 Web 应用程序通常将这些项与用户 Cookie 相关联。 在 Cookie 中存储过多数据会对性能造成不利影响。 因为应用程序通常使用 Cookie 查询后端数据库中的用户数据。 使用内存中缓存来存储用户会话信息比使用后端数据库快。
作业和消息队列。 当任务运行时间可能很长时,应用通常会将任务添加到队列。 如果某个任务包含多项长时间运行的操作,则应用程序通常会将这些操作排入队列,以按顺序运行。 Azure Cache for Redis 可提供发布/订阅、消息流式处理或队列体系结构,以支持此应用程序模式。
注意
按顺序排队处理的长时间运行操作通常是由其他服务器处理。
分布式事务。 有时应用程序需要像执行单项操作一样在后端数据存储中运行一系列命令。 Azure Cache for Redis 支持像执行单个事务一样运行一批命令。
注意
所有命令都必须成功,否则会回退到初始状态。
Azure Cache for Redis 层
你可以从以下五个 Azure Cache for Redis 层中进行选择:
基本层在单个虚拟机 (VM) 上运行,不包括服务级别协议 (SLA)。 此层基于 OSS Redis 缓存。
标准层在两个复制的 VM 上运行,并且基于 OSS Redis 缓存。
重要
标准层和基本层都是单节点缓存。 你只能考虑对非关键工作负载使用这些服务层。
高级层将在更强大的 VM 上进行部署。 该层具有更高的吞吐量、更低的延迟、更好的可用性等特性。 此层基于 OSS Redis 缓存。
与高级层相比,Enterprise 层具有更高的可用性,并可提供由 Redis Labs Redis Enterprise 软件提供支持的高性能缓存。
Enterprise Flash 层为 Enterprise 层提供经济高效的替代方案,并且也是由 Redis Labs Redis Enterprise 软件提供支持。 此层可将 Redis 数据存储扩展到非易失性内存,这样可降低每千兆字节 (GB) 的总体内存开销。
所有层都支持以下功能:
- 传输中的数据加密
- 网络隔离
- 扩展
高级、Enterprise 和 Enterprise Flash 层还支持其他高级功能,其中包括:
- 群集。 提供高可用性和负载分配。
- 数据暂留。 允许在 Redis 中保存数据,使你能够拍摄快照和备份数据。 然后,可以在出现硬件故障时加载这些快照。
- 区域冗余。 提供更高的复原能力和可用性,因为这些 VM 分布在多个可用性区域之间。
- 异地复制。 关联两个 Azure Cache for Redis 实例,并创建数据复制关系。 此复制功能可提供可能的灾难恢复解决方案。
- 导入/导出。 在 Azure Cache for Redis 中导入或导出数据。 可以将 Azure Cache for Redis 数据库 (RDB) 快照从高级缓存导入或导出到 Azure 存储帐户 blob 中。
以下功能仅适用于 Enterprise 层:
- RediSearch。 使用全文搜索引擎提供强大的索引和查询引擎。
- RedisBloom。 提供对概率数据结构的支持。
- RedisTimeSeries。 以高性能引入和查询大量数据。
- 活动异地复制。 实现无冲突复制的数据类型。 支持写入多个缓存实例。 必要时管理合并的更改内容和冲突的解决方法。