你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Cache for Redis 和卓越运营

Azure Cache for Redis 基于 Redis(远程字典服务器)软件提供内存中数据存储。 这是一个安全的数据缓存和消息传送中转站,可让应用程序以较高的吞吐量、较低的延迟访问数据。

支持卓越运营的最佳实践包括:

以下部分包括特定于 Azure Cache for Redis 的设计注意事项、配置清单和建议配置选项。

设计注意事项

Azure Cache for Redis 服务级别协议 (SLA) 仅涵盖标准层和高级层缓存。 基本层未涵盖。

Redis 是键值对的内存中缓存,默认具有高可用性(基本层除外)。 Azure Cache for Redis 有三个层级:

  • 基本层:不建议用于生产工作负载。 基本层适用于:

    • 单节点
    • 多个大小
    • 开发
    • 测试
    • 非关键型工作负荷
  • 标准层:在 Microsoft 托管的双节点主辅配置中提供复制的缓存,并提供高可用性 SLA。

  • 高级层:包括所有标准层功能,并包括以下其他功能:

    • 与基本层或标准层相比,硬件和性能更快。
    • 更大的缓存大小,最高为 120GB
    • 数据持久性,包括 Redis 数据库文件和只追加文件。
    • VNET 支持。
    • 群集
    • 异地复制:二级缓存位于另一个区域,并从主缓存复制数据以进行灾难恢复。 要将故障转移到二级缓存,需要手动解除这些缓存的链接,然后二级缓存才可用于写操作。 向 Redis 中进行写入的应用程序将需要使用二级缓存连接字符串进行更新。
    • 可用性区域:跨可用性区域部署缓存和副本。

      注意

      默认情况下,每个部署将为每个碎片提供一个副本。 目前,对于具有多个副本的部署,持久性、群集和地理复制都将被禁用。 你的节点将均匀地分布在所有区域。 副本数量应大于等于区域数量。

    • 导入和导出。

Microsoft 保证至少 99.9% 的情况下,客户将在缓存终结点和 Microsoft 的互联网网关之间建立连接。

清单

你是否出于卓越运营考虑而配置了 Azure Cache for Redis?


  • 计划更新。
  • 监视缓存并设置警报。
  • 在 VNET 中部署缓存。
  • 在你的解决方案中使用正确的缓存类型(本地、角色中、托管、redis)。
  • 根据业务需求,配置数据持久性以将缓存的副本保存到 Azure Storage 或使用异地复制。
  • 使用连接多路复用器到 Redis 的一个静态或单例实现,并遵循最佳实践指南
  • 请查看如何管理 Azure Cache for Redis

配置建议

浏览以下建议表以优化针对卓越运营的 Azure Cache for Redis 数据库配置:

建议 说明
计划更新。 安排将 Redis 服务器更新应用到缓存的日期和时间,这不包括 Azure 更新,也不包括 VM 操作系统的更新。
监视缓存并设置警报。 针对异常、CPU 使用率高、内存使用率高、服务器负载和逐出的密钥设置警报,以深入了解何时缩放缓存。 如果缓存需要缩放,那么了解何时缩放非常重要,因为在迁移数据的缩放事件期间,这将增加 CPU。
在 VNET 中部署缓存。 使客户对可以连接到缓存的流量有更多的控制。 确保子网有足够的可用地址空间来部署缓存节点和分片(群集)。
在你的解决方案中使用正确的缓存类型(本地、角色中、托管、redis)。 在缓存数据时,分布式应用程序通常会实施以下一种或两种策略:
- 使用专用缓存,其中的数据保存在运行应用程序或服务实例的计算机本地。
- 使用共享缓存,充当可由多个进程和计算机访问的公用源。
在这两种情况下,缓存可在客户端和服务器端执行。 通过为系统提供用户界面(例如 Web 浏览器或桌面应用程序)的进程来实现客户端缓存。 通过远程运行的提供业务服务的进程来实现服务器端缓存。
根据业务需求,配置数据持久性以将缓存的副本保存到 Azure Storage 或使用异地复制。 数据持久性:如果主数据和副本重新启动,数据将从存储帐户中自动加载。 异地复制:二级缓存需要与主缓存断开链接。 次要部分现在将成为主要部分,并可以接收写操作。
请查看如何管理 Azure Redis 缓存 了解在重新启动缓存时如何发生数据丢失,以及如何测试应用程序的弹性。

源项目

若要识别不在高级层上的 Redis 实例,请使用以下查询:

Resources 
| where type == 'microsoft.cache/redis'
| where properties.sku.name != 'Premium'

后续步骤