2016-07-19 28 views
4

に達しました。クイックルックアップデータを保存するためにAzure Redis Cacheを使用しています。このキャッシュは10のクライアントアプリケーションで読み込み/接続されています。すべてのアプリケーションは.NET 4.6で作成されています。これには、ASP.NET MVC Webアプリケーション、Web API、および1秒ごとに実行されるほとんどのワーカー・ロールが含まれます。すべてのクライアントは、キャッシュに接続するためにStackExchange.Redisを使用しています。しかし、断続的なタイムアウトが発生し、Azure Portalで最大接続数が1000に達していることがわかりました。私は10のクライアントアプリケーションしか持っていないので、これらのどれもマルチスレッド化されていないので、キャッシュへの1000の接続を作ることができますか?Azure Redis Cacheの最大接続数が

キャッシュクライアントで使用できるベストプラクティスはありますか?

答えて

5

これは、この質問に非常に似ています。ここではWhy are connections to Azure Redis Cache so high?

たちは、ほとんどの顧客のためにお勧めのベストプラクティスです:あなたの接続文字列ではfalseにabortConnect

  1. セット
  2. シングルトンconnectionMultiplexerを作成し、それを再使用してください。ほとんどのシナリオではこれで十分です。いくつかの高度なシナリオでは、アプリケーションごとに複数のconnectionMultiplexerオブジェクトを作成する必要がありますが、ほとんどの場合、1つだけで問題ありません。 https://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/#connect-to-the-cache
  3. ConnectionMultiplexerで再接続を処理させてください。コードを非常に徹底的にテストしない限り、自分で処理しないでください。私が見たコネクションリークの大半は、人々がconnectionMultiplexerを再作成していますが、古いものを処分できないためです。ほとんどの場合、マルチプレクサに再接続をさせるのが最善です。