探索 Azure Cache for Redis
Azure Cache for Redis 基于 Redis 软件提供内存中数据存储。 Redis 改善了大量使用后端数据存储的应用程序的性能和可伸缩性。 它将经常访问的数据保留在可快速读写的服务器内存中,从而能够处理大量应用程序请求。 Redis 为新式应用程序带来了关键的低延迟、高吞吐量数据存储解决方案。
Azure Cache for Redis 提供 Redis 开放源代码 (OSS Redis) ,还提供 Redis 实验室的一款商业产品 (Redis Enterprise) 作为托管服务。 它提供安全的专用 Redis 服务器实例,且完全兼容 Redis API。 Microsoft 操作该服务,在 Azure 中托管,可由 Azure 内外的任何应用程序使用。
关键方案
Azure Cache for Redis 通过支持常见的应用程序体系结构模式来提高应用程序性能。 部分最常用的模式如下所示:
模式 | 说明 |
---|---|
数据缓存 | 数据库通常很大,无法直接加载到缓存中。 通常是使用缓存端模式,只在需要时才将数据加载到缓存中。 系统对数据进行更改时,还会同时更新缓存,然后将缓存分发给其他客户端。 |
内容缓存 | 许多网页都是基于使用静态内容(例如页眉、页脚、横幅)的模板生成的。 这些静态项不应经常更改。 与后端数据存储相比,使用内存中缓存可以快速地访问静态内容。 |
会话存储 | 此模式通常用于购物车和其他用户历史记录数据,Web 应用程序可能将此类信息与用户 Cookie 相关联。 在 Cookie 中存储过多内容可能会对性能造成负面影响,因为 Cookie 会变大,并且每次请求都需要传递和验证 Cookie。 常用解决方案是使用 Cookie 作为键来查询数据库中的数据。 相比于与完整的关系数据库交互,使用内存中缓存(例如 Azure Cache for Redis)将信息与用户相关联的速度更快。 |
作业和消息队列 | 当需要花费时间来执行与请求相关联的操作时,应用程序通常将任务添加到队列中。 长时间运行的操作将排队等待按顺序处理,通常由另一服务器进行处理。 这种将工作推迟的方法称为任务队列。 |
分布式事务 | 有时候,应用程序需要将针对后端数据存储的一系列命令作为单个原子操作来执行。 所有命令都必须成功,否则,所有命令都必须回退到初始状态。 Azure Cache for Redis 支持将一批命令作为单个事务来执行。 |
服务层
Azure Cache for Redis 在下面各层中提供:
层 | 说明 |
---|---|
基本 | 在单个虚拟机 (VM) 上运行的 OSS Redis 缓存。 此层不提供服务级别协议 (SLA),因此非常适用于开发/测试和非关键工作负载。 |
标准 | 在配置完全相同的两个 VM 上运行的 OSS Redis 缓存。 |
高级 | 高性能 OSS Redis 缓存。 该层提供更高的吞吐量、更低的延迟、更好的可用性和更多功能。 与基本或标准缓存相比,高级缓存部署在功能更强大的 VM 上。 |
Enterprise | 高性能缓存由 Redis 实验室的 Redis Enterprise 软件提供支持。 该层支持 Redis 模块,包括 RediSearch、RedisBloom 和 RedisTimeSeries。 此外,它甚至提供比高级层更高的可用性。 |
Enterprise Flash | 经济高效的大型缓存由 Redis 实验室的 Redis Enterprise 软件提供支持。 此层将 Redis 数据存储扩展到 VM 上的非易失性存储器,其价格低于 DRAM。 它总体上降低了每 GB 内存的成本。 |
Azure Cache for Redis 定价提供了每个层的详细比较。