我使用Azure Redis缓存来存储一些快速查找数据,这个缓存由10个客户端应用程序读取/连接.所有应用程序都是用.NET 4.6编写的,这包括ASP.NET MVC Web应用程序,Web API以及每1秒运行一次的工作者角色.所有客户端都使用StackExchange.Redis连接到Cache.但是,我得到间歇性超时,我发现在Azure门户中,最大连接数已达到1000(对于我的定价层).由于我只有10个客户端应用程序,而且这些应用程序都不是多线程的,因此可以创建与缓存的1000个连接?
我可以为缓存客户端提供哪些最佳实践?
最佳答案:
这与这个问题非常相似:Why are connections to Azure Redis Cache so high?
以下是我们为大多数客户推荐的最佳做法:
>在连接字符串中将abortConnect设置为false
>创建一个singleton connectionMultiplexer并重用它.这对于大多数情况都是足够的.某些高级方案可能需要为每个应用程序创建多个connectionMultiplexer对象,但大多数情况下只有一个很好.我建议按照此处显示的编码模式:https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/#connect-to-the-cache
>让ConnectionMultiplexer处理重新连接 – 除非您已经彻底测试了代码,否则不要自己动手.我见过的大多数连接泄漏都是因为人们正在重新创建connectionMultiplexer但却无法处理旧的连接.在大多数情况下,最好让多路复用器进行重新连接.
原文地址:https://codeday.me/bug/20190516/1115201.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。