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

StackExchange.Redis mit Azure Redis ist unbrauchbar langsam oder löst Zeitüberschreitungsfehler aus

Hier ist das empfohlene Muster aus der Azure Redis Cache-Dokumentation:

private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => {
    return ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});

public static ConnectionMultiplexer Connection {
    get {
        return lazyConnection.Value;
    }
}

Ein paar wichtige Punkte:

  • Es verwendet Lazy, um die Thread-sichere Initialisierung zu handhaben
  • Es setzt "abortConnect=false", was bedeutet, dass der ConnectionMultiplexer, wenn der anfängliche Verbindungsversuch fehlschlägt, es stillschweigend im Hintergrund erneut versucht, anstatt eine Ausnahme auszulösen.
  • Tut es nicht Überprüfen Sie die IsConnected-Eigenschaft, da ConnectionMultiplexer im Hintergrund automatisch einen neuen Versuch unternimmt, wenn die Verbindung unterbrochen wird.