首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Redis缓存延迟

Azure Redis缓存延迟
EN

Stack Overflow用户
提问于 2018-12-16 19:00:28
回答 1查看 3.7K关注 0票数 0

我正在做一个有网页作业和蓝色功能应用程序的应用程序。Web作业为函数应用程序的消费生成redis缓存。缓存大小约为10兆字节。我正在使用惰性加载和所有的建议。我仍然发现整个缓存操作是缓慢的。根据我正在处理的文件的大小,我可能会调用多达100,000次Redis缓存。想知道是否需要将缓存数据保存在本地变量中,而不是每次从redis读取数据。有没有人在访问Redis时经历过任何延迟?在c#函数应用程序中创建单个对象并根据某些定时器或其他逻辑刷新它是否有意义?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-16 20:01:45

你能考虑一下这一点吗?在你的用法中,这是一些浅蓝红色的好方法。

  • Redis在较小的值中工作得最好,所以考虑将更大的数据分割成多个键。在这个红色讨论中,100 is被认为是“大”的。阅读这篇文章中一个可能由大值引起的示例问题。
  • 为生产系统使用标准或高级层。基本层是一个没有数据复制和SLA的单节点系统。另外,至少使用一个C1缓存。C0缓存实际上是针对简单的开发/测试场景的,因为它们具有共享的CPU核心,很少的内存,容易产生“噪音邻居”等等。
  • 记住,Redis是一个内存中的数据存储。这样您就可以知道可能发生数据丢失的情况。
  • 重用连接--创建新的连接非常昂贵,并且会增加延迟的,因此尽可能地重用连接。如果选择创建新连接,请确保在释放旧连接之前关闭它们(即使是在托管内存语言(如.NET或Java)中)。
  • 将缓存实例和应用程序定位在同一个区域中。连接到不同区域的缓存可以显著增加延迟和降低可靠性。支持从Azure外部进行连接,但不建议使用Redis作为缓存(而不是主要考虑延迟的密钥/值存储)。
  • Redis在较小的值中工作得最好,所以考虑将更大的数据分割成多个键。
  • 配置您的 最大内存预留 设置,以提高在内存压力条件下的系统响应,特别是对于编写繁重的工作负载,或者如果您要在Redis中存储更大的值(100 in或更多)。我建议从缓存大小的10%开始,如果您有写重负载,则增加。选择值时请参阅几点考虑
  • 避免昂贵的命令-一些redis操作,如“键”命令,非常昂贵,应该避免。
  • 将客户端库配置为使用至少10到15秒的“连接超时”( connect ),即使在较高的条件下,系统也有时间进行连接。如果您的客户端或服务器往往负载较高,则使用更大的值。如果在单个应用程序中使用大量连接,请考虑添加某种类型的交错重新连接逻辑,以防止大量连接同时影响服务器。
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53805488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档