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

本文关键字:连接 Redis 缓存 Azure | 更新日期: 2023-09-27 17:57:35

我使用Azure Redis缓存来存储一些快速查找数据,该缓存由10个客户端应用程序读取/连接。所有的应用程序都是用编写的。NET 4.6,其中包括ASP。NET MVC Web应用程序、Web API以及每隔1秒运行一次的少数工作人员角色。所有客户端都在使用StackExchange。用于连接到缓存的Redis。然而,我会遇到间歇性超时,我观察到在Azure Portal中,最大连接数已达到1000(对于我的定价层)。由于我只有10个客户端应用程序,而且这些应用程序都不是多线程的,那么如何创建到缓存的1000个连接呢?

对于Cache客户端,我可以遵循哪些最佳实践吗?

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

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

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

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