c# – 已达到Azure Redis缓存最大连接数

我使用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但却无法处理旧的连接.在大多数情况下,最好让多路复用器进行重新连接.

转载注明原文:c# – 已达到Azure Redis缓存最大连接数 - 代码日志