Redis unterstützt den nativen Lese-/Schreibsperrmechanismus nicht. Zu den Lösungen gehören: Tools von Drittanbietern: RedLock oder RwLock; benutzerdefinierte Lösungen: tokenbasiert: Verwendung der Schlüssel read_lock und write_lock: Verwendung eines Sperrschlüssels mit einer Zufallszahl;
Redis Lese-/Schreibsperre: Lösung
Redis ist eine In-Memory-Datenbank und unterstützt den nativen Lese-/Schreibsperrmechanismus nicht. Daher müssen Tools oder benutzerdefinierte Lösungen von Drittanbietern verwendet werden, um die Lese-/Schreibsperrfunktion zu implementieren.
Tools von Drittanbietern
Kundenspezifische Lösung
Basierend auf dem Token-Mechanismus:
read_lock
und write_lock
. read_lock
和 write_lock
。read_lock
的值递增。read_lock
的值递减。write_lock
的值设置为 1。write_lock
的值重置为 0。基于条件变量:
lock
,它的值是一个原子操作生成的随机数。lock
的值和自己的随机数,如果相等,则获得读锁。lock
的值。lock
的值。lock
read_lock
erhöht. Wenn der Client die Lesesperre aufhebt, wird der Wert von read_lock
dekrementiert. Wenn der Client die Schreibsperre erhält, wird der Wert von write_lock
auf 1 gesetzt.
write_lock
auf 0 zurückgesetzt. Legen Sie einen Schlüssel lock
fest, dessen Wert eine Zufallszahl ist, die durch eine atomare Operation generiert wird. Wenn der Client versucht, die Lesesperre zu erhalten, vergleicht er den Wert von lock
mit seiner eigenen Zufallszahl. Wenn sie gleich sind, erhält der Client die Lesesperre.
Wenn der Client die Lesesperre aufhebt, setzen Sie den Wert von lock
zurück.
lock
. lock
zurück. Das obige ist der detaillierte Inhalt vonSo lösen Sie die Redis-Lese-/Schreibsperre. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!