azure - Azure 中的 Redis 缓存被意外清除

标签 azure redis

最近,1 月 3 日,我们观察到 Azure 中 Redis 缓存的有趣行为。这种事只发生过一次,我正在努力理解它。

我们收到警报,Redis 缓存服务的 CPU 利用率超过 80%。仔细观察,我们发现使用的内存从典型的 100MB 下降到几乎 0。然后它很快恢复正常,我认为是应用程序的正常使用。当它被填充时,CPU 出现峰值。

看起来缓存是否已重置。然而,这是生产环境,访问它的人非常有限,我们 100% 确信没有人重置它。当时没有任何部署。我在诊断日志中找不到任何内容。

问题: 1. 你知道会发生什么吗? 2. 我可以在哪里寻找,寻找什么?

更新:我们处于标准 (C1) 层

没有客户报告任何问题,我只是讨厌当我不明白发生了什么时。

最佳答案

这取决于您使用的缓存层。

基本层只有一个节点,缓存数据存储在内存中。该节点中的任何内存丢失都会导致缓存数据丢失。

如果您使用的是标准层,则有 2 个节点(主节点和辅助节点),缓存数据从主节点异步复制到辅助节点。如果主服务器离线,则客户端请求将发送到辅助服务器。在这种情况下,缓存数据丢失的可能性很低,因为它基本上要求两个节点同时离线,这应该只在硬件故障的情况下发生(Azure 确保正常的更新维护(例如操作系统更新)不会在节点上完成)同一时间)。

如果您使用的是高级层,则缓存数据由持久存储支持,因此您不会遇到缓存数据丢失的情况。

https://azure.microsoft.com/en-us/documentation/articles/cache-faq/#what-redis-cache-offering-and-size-should-i-use有一些关于此的更多信息。

关于azure - Azure 中的 Redis 缓存被意外清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34641043/

相关文章:

azure - 为什么之前稳定且工作的 Liquid 模板在最近的 Azure API 管理升级后会失败?

azure - 10 个免费站点帐户的 Azure 阈值是多少,这是终身的吗

azure - 如何防止 Azure API 管理将订阅 key 查询参数传递给逻辑应用?

Redis:设置键值 [EX 秒] [PX 毫秒] [NX|XX] 给出语法错误

.net - 通过应用程序洞察通过电子邮件向开发团队发送带有堆栈跟踪的异常情况

c# - Microsoft.WindowsAzure.Storage 4.0.1 和 Windows Storage Emulator 3.1.0 导致 (400) 错误请求

Redis 哨兵不会自动发现其他哨兵

c# - 使用 ServiceStack.Redis C# .Net 在 Redis 服务器中从第 m 行到第 n 行搜索数据

Redis 流与 Kafka 流/NATS

azure - Redis 缓存 - 什么时候可以触发大规模驱逐?