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

Tho*_*mas 5 c# caching azure redis azure-redis-cache

我使用Azure Redis缓存来存储一些快速查找数据,这个缓存由​​10个客户端应用程序读取/连接.所有应用程序都是用.NET 4.6编写的,这包括ASP.NET MVC Web应用程序,Web API以及每1秒运行一次的工作者角色.所有客户端都使用StackExchange.Redis连接到Cache.但是,我得到间歇性超时,我发现在Azure门户中,最大连接数已达到1000(对于我的定价层).由于我只有10个客户端应用程序,而且这些应用程序都不是多线程的,因此可以创建与缓存的1000个连接?

我可以为缓存客户端提供哪些最佳实践?

Jon*_*ole 6

这与此问题非常相似:为什么Azure Redis Cache的连接如此之高?

以下是我们为大多数客户推荐的最佳做法:

  1. 在连接字符串中将abortConnect设置为false
  2. 创建一个singleton connectionMultiplexer并重用它.这对于大多数情况都是足够的.某些高级方案可能需要为每个应用程序创建多个connectionMultiplexer对象,但大多数情况下只有一个很好.我建议遵循此处显示的编码模式:https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/#connect-to-the -cache
  3. 让ConnectionMultiplexer处理重新连接 - 除非您已经彻底测试了代码,否则不要自己动手.我见过的大多数连接泄漏都是因为人们正在重新创建connectionMultiplexer但却无法处理旧的连接.在大多数情况下,最好让多路复用器进行重新连接.