Redis缓存 - 何时可以触发大规模驱逐?

Tom*_*len 4 azure redis azure-redis-cache

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

在此输入图像描述

我们时不时地观察到内存使用率大幅下降.似乎有很多资源被驱逐.

注意事项:

  • 驱逐政策是LRU
  • 可用的缓存大小为2.5GB
  • 没有能够驱逐如此大量内存的应用程序代码(最大的对象大约是80kb,大多数都要小得多)
  • 观察到的内存丢失代表了数万个密钥
  • 我们很少在缓存的对象上使用明确的到期日期,当我们这样做时,它们总是<1小时.

我的问题是,除了明确驱逐密钥的应用程序逻辑外,还有其他任何情况Redis会驱逐大量的密钥吗?

Dus*_*sty 6

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

你说"似乎"有很多资源被驱逐出去,但如果你只是依靠回收的记忆来表达那种外表,你可能会追逐鬼魂.您是否已检查此图表如何与Total KeysAzure门户中提供的指标叠加?覆盖这两个系列应该允许您查看内存回收是否真的是由于驱逐,还是由于Azure之类的另一个进程可能会定期在缓存实例上调用MEMORY PURGE来清理脏页?