8

Azure Redis キャッシュに接続するには、次の方法に従うのが最善であると読みました。

private static ConnectionMultiplexer Connection { get { return LazyConnection.Value; } }

    private static readonly Lazy<ConnectionMultiplexer> LazyConnection =
        new Lazy<ConnectionMultiplexer>(
            () =>
            {
                return
                    ConnectionMultiplexer.Connect(connStinrg);
            });

そして、Azure Redis のドキュメントによると:

Azure Redis Cache への接続は、ConnectionMultiplexer クラスによって管理されます。このクラスは、クライアント アプリケーション全体で共有および再利用できるように設計されており、操作ごとに作成する必要はありません。

では、ASP.net MVC アプリ全体で ConnectionMultiplexer を共有するためのベスト プラクティスは何ですか? Global.asax で呼び出す必要がありますか、またはコントローラーごとに 1 回初期化する必要があります。そうしないと ?

また、アプリと通信するサービスがあるため、サービス内で Redis と通信する場合は、ConnectionMultiplexer のインスタンスをコントローラーからサービスに送信するか、すべてのサービスで初期化する必要がありますか?

ご覧のとおり、私はここで少し迷っているので、助けてください!

4

2 に答える 2

7

ドキュメントは、ConnectionMultiplexer のインスタンスを 1 つだけ使用して再利用する必要があるという点で正しいです。複数作成しないでください。共有して再利用することをお勧めします。

作成部分については、Controller または Global.asax にあるべきではありません。通常、内部で ConnectionMultiplexer プライベート静的インスタンスを使用する独自の RedisCacheClient クラス (おそらく ICache インターフェイスを実装する) が必要であり、そこに作成コードを配置する必要があります-質問に書いたとおりです。Lazy部分は、初めて使用されるまで ConnectionMultiplexer の作成を延期します。

于 2015-09-11T14:15:14.287 に答える