Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Sollte „StackExchange.Redis.ConnectionMultiplexer“ in der .NET Core-Abhängigkeitsinjektion „AddSingleton“ oder „AddScope“ sein?

Welche Last wird für die App erwartet? Wenn Sie viel Parallelität haben, denke ich, dass Sie AddScoped verwenden würde viel unnötigen Aufwand bedeuten, um Verbindungen für jede Anfrage zu initiieren und zu schließen.

Auch diese Beobachtungen zeigen meiner Meinung nach, dass Sie AddSingleton verwenden sollten

(...) es ist außergewöhnlich selten, dass Sie kurz einen ConnectionMultiplexer verwenden möchten, da die Idee darin besteht, dieses Objekt wiederzuverwenden.

Eine weitere häufige Verwendung von redis ist die Verteilung von Pub/Sub-Nachrichten; dies ist ebenfalls einfach, und im Falle eines Verbindungsausfalls kümmert sich der ConnectionMultiplexer um alle Details zum erneuten Abonnieren der angeforderten Kanäle.

Außerdem sparen Sie Speicherplatz, wenn Sie nur eine Instanz von ConnectionMultiplexer haben (IMHO).