Erste Schritte mit Watch in Serverless - Amazon ElastiCache

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit Watch in Serverless

ElastiCache unterstützt den WATCH Befehl, mit dem Sie Schlüssel auf Änderungen überwachen und bedingte Transaktionen ausführen können. Der WATCH Befehl ist besonders nützlich für Anwendungen, die eine optimistische Parallelitätssteuerung erfordern. Dadurch wird sichergestellt, dass Transaktionen nur ausgeführt werden, wenn die überwachten Schlüssel nicht geändert wurden. Dazu gehören Änderungen, die von einem Client vorgenommen wurden, wie Schreibbefehle, und von Valkey selbst, wie Ablauf oder Räumung. Wenn Schlüssel seit ihrer Eingabe WATCH und bis zum Zeitpunkt ihres Eingangs geändert wurden, wird die gesamte Transaktion abgebrochen. EXEC

Für ElastiCache Serverless werden die folgenden Einschränkungen eingeführt:

ElastiCache Serverless WATCH ist auf einen einzelnen Hash-Slot beschränkt. Das bedeutet, dass nur Schlüssel, die demselben Hash-Slot zugeordnet sind, gleichzeitig über dieselbe Verbindung überwacht werden können und die Transaktion, die den Watch-Befehlen folgt, nur auf demselben Hash-Slot ausgeführt werden kann. Wenn eine Anwendung versucht, Schlüssel aus verschiedenen Hash-Slots zu überwachen oder Transaktionsbefehle auszuführen, die auf Schlüsseln ausgeführt werden, die einem anderen Hash-Slot als dem der überwachten Schlüssel zugeordnet sind, wird ein CROSSSLOT Fehler zurückgegeben. Hashtags können verwendet werden, um sicherzustellen, dass mehrere Schlüssel demselben Hash-Slot zugeordnet sind.

Darüber hinaus kann der SCAN Befehl nicht innerhalb einer Verbindung mit überwachten Schlüsseln ausgeführt werden und gibt einen command not supported during watch state Fehler zurück.

Die Transaktion wird abgebrochen (als ob überwachte Schlüssel berührt worden wären), wenn ElastiCache Serverless nicht sicher ist, ob ein Schlüssel geändert wurde. Zum Beispiel, wenn ein Slot migriert wurde und die überwachten Schlüssel nicht auf demselben Knoten gefunden werden können.

Codebeispiele

Im folgenden Beispiel sind der überwachte Schlüssel und der im SET Befehl angegebene Schlüssel verschiedenen Hash-Slots zugeordnet. Die Ausführung gibt a zurückCROSSSLOT ERROR.

> WATCH foo:{005119} OK > MULTI OK > SET bar:{011794} 1234 QUEUED > EXEC CROSSSLOT Keys in request don't hash to the same slot

Das folgende Beispiel zeigt eine erfolgreiche Transaktion, da der eingegebene Schlüssel WATCH nicht geändert wurde.

> WATCH foo:{005119} OK > MULTI OK > SET bar:{005119} 1234 QUEUED > EXEC 1) OK

Im folgenden Beispiel gibt ein Versuch, WATCH Schlüssel von verschiedenen Steckplätzen gleichzeitig innerhalb derselben Client-Verbindung zu verwenden, a zurückCROSSSLOT ERROR.

> WATCH foo:{005119} OK > WATCH bar:{123455} CROSSSLOT Keys in request don't hash to the same slot

Limit ansehen

Jede Client-Verbindung kann bis zu 1000 Schlüssel gleichzeitig überwachen.

Unterstützte Befehle im Zusammenhang mit Watch

Die Befehle WATCH und UNWATCH sind auf der Valkey.io-Website dokumentiert. Sie bietet einen umfassenden Überblick über die Befehle, einschließlich ihrer Syntax, ihres Verhaltens, ihrer Rückgabewerte und möglicher Fehlerbedingungen.