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

标签 azure redis azure-redis-cache

我们在 Azure 标准 2.5gb 上有一个 Redis 缓存。我们观察到以下行为:

enter image description here

我们时不时地会观察到内存使用量大幅下降。看来很多资源正在被驱逐。

注意事项:

  • 驱逐政策为 LRU
  • 可用缓存大小为 2.5GB
  • 没有应用程序代码会收回如此大量的内存(最大的对象约为 80kb,大多数都小得多)
  • 观察到的内存下降代表数万个键
  • 我们很少对缓存对象使用明确的到期日期,即使这样做,它们也总是 < 1 小时。

我的问题是,除了应用程序逻辑显式驱逐 key 之外,Redis 是否还有其他情况会驱逐大量 key ?

最佳答案

内存清理可能不代表驱逐。

你说“看起来”很多资源正在被驱逐,但如果你只是依靠回收的内存来实现这种外观,那么你可能是在追鬼。您是否检查过此图表如何与 Azure 门户中提供的 Total Keys 指标重叠?叠加这两个系列应该可以让您了解内存回收是否确实是由于逐出所致,还是由于另一个进程(例如 Azure)可能调用 MEMORY PURGE定期在缓存实例上清理脏页?

关于azure - Redis 缓存 - 什么时候可以触发大规模驱逐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53597011/

相关文章:

node.js - Nodejs Azure Redis 缓存永远挂起并读取 ECONNRESET 错误

c# - 没有可用的连接来服务此操作 : when using Azure Redis Cache

Azure Function 中的 Azure Redis 触发器

azure - CosmosDB 容器未创建

redis - 需要知道哪些键被更频繁地访问

ruby-on-rails - Sidekiq 未连接到 Rails

redis - 使用 gRPC 传输文件

azure - 高可用性 Azure VM 的正确设置

azure - 为什么 AuthorizationCodeRequest 和 AuthorizationCodeUrlRequest 的范围可以不同,即使文档另有说明?

azure - Xamarin MSAL Azure AD B2C 登录显示浏览器而不是 Web View