如何管理 Azure Redis 缓存

本文介绍如何为 Azure Cache for Redis 实例执行管理任务,如重新启动更新通道和计划更新

重新启动

左侧的“重新启动”可重新启动缓存的一个或多个节点。 如果有缓存节点发生故障,此重新启动功能可用于测试应用程序的复原能力。

Screenshot that highlights the Reboot menu option

选择要重新启动的节点,并选择“重新启动”。

Screenshot that shows which nodes you can reboot

如果高级缓存启用了群集功能,则可选择要重新启动的缓存分片。

screenshot of shard options

要重新启动缓存的一个或多个节点,请选择所需节点,并单击“重新启动”。 如果高级缓存启用了群集功能,请选择要重新启动的分片,然后选择“重新启动”。 几分钟后,所选节点将重新启动,再过几分钟后,又会回到联机状态。

对客户端应用程序的影响因用户重新启动的节点而有所不同。

  • 主 - 重新启动主节点时,Azure Cache for Redis 会故障转移到副本节点,并将其提升为主节点。 在此故障转移期间,可能会有一个较短的时间间隔无法连接到缓存。
  • 副本 - 重新启动副本节点后,通常对缓存客户端没有影响。
  • 主节点和副本 - 当两个缓存节点都重启时,Azure Cache for Redis 将尝试正常重启这两个节点,等待一个节点完成,然后再重启另一个节点。 通常不会发生数据丢失。 但是,由于发生意外的维护事件或故障,仍可能会发生数据丢失。 在一行中多次重启缓存会增加数据丢失的几率。
  • 已启用群集的高级缓存的节点 - 重新启动已启用群集的高级缓存的一个或多个节点时,所选节点的行为与重新启动非群集缓存的相应节点时相同。

重新启动常见问题解答

测试应用程序时应重新启动哪个节点?

若要针对缓存的主节点故障测试应用程序的复原能力,请重新启动主节点。 若要针对副本节点故障测试应用程序的复原能力,请重新启动“副本”节点。

能否通过重新启动缓存来清除客户端连接?

能,如果重新启动缓存,将清除所有客户端连接。 当每个客户端连接均已用完(由于客户端应用程序中的逻辑错误或 bug)时,重新启动会很有用。 每个定价层对于不同大小都有不同的客户端连接数限制,达到这些限制后,将不再接受客户端连接。 通过重新启动缓存可以清除所有客户端连接。

重要

如果通过重新启动缓存来清除客户端连接,则一旦 Redis 节点重回联机状态,StackExchange.Redis 就会自动重新连接。 如果未解决这一基本问题,客户端连接会继续用完。

如果执行重新启动,是否会丢失缓存中的数据?

如果同时重启主节点副本节点,则缓存中或该分片中(如果使用的是已启用群集的高级缓存)的所有数据都可能是安全的。 但是,在某些情况下,数据可能会丢失。 重启两个节点时应谨慎。

如果只重新启动其中一个节点,数据通常不会丢失,但仍可能会丢失。 例如,如果重新启动主节点时正在进行缓存写入,则缓存写入的数据会丢失。 发生数据丢失的另一种情况是,重新启动一个节点时,另一个节点恰巧因故障而关闭。 有关数据丢失的可能原因的详细信息,请参阅我在 Redis 中的数据发生了什么情况?

能否使用 PowerShell、CLI 或其他管理工具重新启动缓存?

能,有关 PowerShell 说明,请参阅重新启动 Azure Redis 缓存

更新通道和计划更新

使用左侧的“计划更新”可为缓存实例选择一个更新通道和维护时段。

任何使用“稳定”更新通道的缓存实例都比使用“预览”更新通道的缓存实例晚几周接收更新。 建议为非生产工作负载和不太关键的工作负载选择“预览”更新通道。 为最关键的生产工作负载选择“稳定”更新通道。 默认情况下,所有缓存默认为“稳定”更新通道。

重要

更改缓存实例上的更新通道会导致缓存经历修补事件,以应用正确的更新。 请考虑在维护时段期间更改更新通道。

借助维护时段,可以控制在一周中的哪一天和哪个时间点更新托管缓存的 VM。 Azure Cache for Redis 将尽最大努力在定义的指定时间范围内启动和完成 Redis 服务器软件的更新。

重要

更新通道和维护时段适用于 Redis 服务器更新以及托管缓存的 VM 的操作系统更新。 更新通道和维护时段不适用于托管缓存 VM 或其他 Azure 网络组件的主机的主机 OS 更新。 在极少数情况下,缓存托管在旧型号上,维护时段也不适用于来宾 OS 更新。 如果缓存的 DNS 名称解析为 chinacloudapp.cnchinacloudapp.cnusgovcloudapi.netcloudapi.de 的后缀,则可以判断缓存是否在旧型号上。

Screenshot showing schedule updates

要指定维护时段,请选中需要的日期,并指定每天的维护时段开始时间。 选择“确定”。 维护时段时间采用 UTC,只能按小时配置。

更新的默认最小维护时段为 5 小时。 此值不可以在 Azure 门户中配置,但可以在 PowerShell 中使用 New-AzRedisCacheScheduleEntry cmdlet 的 MaintenanceWindow 参数进行配置。 有关详细信息,请参阅 能否使用 PowerShell、CLI 或其他管理工具管理计划的更新?

计划更新常见问题解答

如果不使用计划更新功能,何时进行更新?

如果未指定维护时段,可以随时进行更新。

在计划性维护时段进行哪种类型的更新?

仅在计划的维护时段进行 Redis 服务器更新。 维护时段不适用于 Azure 更新或主机操作系统更新。

能否使用 PowerShell、CLI 或其他管理工具管理计划的更新?

可以使用以下 PowerShell cmdlet 管理计划的更新:

“计划更新”功能涵盖和管理的更新是否可能在“计划更新”时段之外发生?

是的。 通常不会在配置的“计划更新”时段口之外应用更新。 作为安全策略的一部分,可以在修补计划之外应用极少数的关键安全更新。

后续步骤

了解有关 Azure Cache for Redis 功能的详细信息。