2016-05-26 12 views

Antwort

0

StackExchange.Redis verfügt über einige Sperrmethoden, wenn Sie versuchen, einen Abschnitt mit kritischen Codes davor zu schützen, mehrfach ausgeführt zu werden.

if (connectionMultiplexer.GetDatabase().LockTake(key, token, duration)) 
{ 
    try 
    { 
     // do stuff 
    } 
    finally 
    { 
     connectionMultiplexer.GetDatabase().LockRelease(key, token); 
    } 
} 

Es gibt auch LockExtend und LockQuery Methoden.

Weitere detaillierte Informationen finden Sie unter https://stackoverflow.com/a/25138164/2497886.

Es lohnt sich auch, sich die Redis-Dokumentation zu verteilten Schlössern anzuschauen - http://redis.io/topics/distlock.

Die Bibliothek RedLock.net implementiert den Distlock-Algorithmus und unterstützt Dinge wie Blockieren/Wiederholen, um eine Sperre und automatische Sperrenerweiterung zu erhalten. (Disclaimer: Ich bin der Autor der Bibliothek)