gpt4 book ai didi

caching - Azure Redis 缓存延迟

转载 作者:可可西里 更新时间:2023-11-01 11:06:14 25 4
gpt4 key购买 nike

我正在开发一个具有 Web 作业和 Azure 函数应用程序的应用程序。 Web 作业生成 redis 缓存供函数应用使用。缓存大小约为 10 兆字节。我正在按照建议使用延迟加载。我仍然发现整体缓存操作很慢。根据我正在处理的文件的大小,我最终可能会调用 Redis 缓存多达 100,000 次。想知道我是否需要将缓存数据保存在本地变量中,而不是每次都从 redis 中读取它。有没有人在访问 Redis 时遇到任何延迟?在 C# 函数应用程序中创建单例对象并根据某些计时器或其他逻辑刷新它是否有意义?

最佳答案

你能不能在你的使用中考虑到这一点,这是 azure redis cashe 的一些好的实践

  • Redis 最适合较小的值,因此请考虑将较大的数据分成多个键。在这个Redis discussion , 100kb 被认为是“大”。阅读this article对于可能由大值引起的示例问题。

  • 为生产系统使用标准层或高级层。基本层是单节点系统,没有数据复制,也没有 SLA。另外,至少使用一个 C1 缓存。 C0 缓存实际上适用于简单的开发/测试场景,因为它们具有共享的 CPU 核心、非常小的内存、容易出现“嘈杂的邻居”等问题。

  • 请记住,Redis 是一种内存数据存储。以便您了解可能发生数据丢失的情况。

  • 重用连接 - 创建新连接的成本很高并且会增加延迟,因此请尽可能重用连接。如果您选择创建新连接,请确保在释放它们之前关闭旧连接(即使是在托管内存语言中,如 .NET 或 Java)。

  • 将您的缓存实例和您的应用程序放在同一区域。连接到不同区域的缓存会显着增加延迟并降低可靠性。支持从 Azure 外部进行连接,但不建议这样做,尤其是在将 Redis 用作缓存时(与延迟可能不是主要问题的键/值存储相反)。

  • Redis 最适合较小的值,因此请考虑将较大的数据分成多个键。

  • 配置您的 maxmemory-reserved设置以在内存压力条件下提高系统响应能力,特别是对于写入繁重的工作负载,或者如果您在 Redis 中存储更大的值(100KB 或更多)。我建议从缓存大小的 10% 开始,然后如果您有大量写入负载则增加。参见 some considerations选择值时。

  • 避免昂贵的命令 - 一些 redis 操作,如“KEYS”命令,非常昂贵,应该避免。

  • 将您的客户端库配置为使用至少 10 到 15 秒的“连接超时”,让系统有时间进行连接,即使在更高的 CPU 条件下也是如此。如果您的客户端或服务器往往处于高负载下,请使用更大的值。如果您在单个应用程序中使用大量连接,请考虑添加某种类型的交错重新连接逻辑,以防止大量连接同时攻击服务器。

关于caching - Azure Redis 缓存延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53805488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com