Guida introduttiva a Watch in Serverless - Amazon ElastiCache

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva a Watch in Serverless

ElastiCache supporta il WATCH comando, che consente di monitorare le modifiche delle chiavi ed eseguire transazioni condizionali. Il WATCH comando è particolarmente utile per le applicazioni che richiedono un controllo ottimistico della concorrenza, garantendo che le transazioni vengano eseguite solo se le chiavi monitorate non sono state modificate. Ciò include le modifiche apportate da un client, come i comandi di scrittura, e dalla stessa Valkey, come la scadenza o lo sfratto. Se le chiavi sono state modificate dal momento in cui sono state impostate WATCH e al momento EXEC della ricezione, l'intera transazione verrà interrotta.

Per ElastiCache Serverless, vengono introdotti i seguenti vincoli:

ElastiCache Serverless WATCH è limitato a un singolo slot hash. Ciò significa che solo le chiavi mappate allo stesso slot hash possono essere controllate contemporaneamente dalla stessa connessione e la transazione che segue i comandi di watch può funzionare solo sullo stesso slot hash. Quando un'applicazione tenta di controllare le chiavi di slot hash diversi o di eseguire comandi di transazione che operano su chiavi mappate su uno slot hash diverso da quello delle chiavi controllate, viene restituito un errore. CROSSSLOT I tag hash possono essere utilizzati per garantire che più chiavi siano mappate sullo stesso slot hash.

Inoltre, SCAN il comando non può essere eseguito all'interno di una connessione con chiavi controllate e restituirà un errore. command not supported during watch state

La transazione verrà interrotta (come se le chiavi controllate venissero toccate) quando ElastiCache Serverless non ha la certezza che una chiave sia stata modificata. Ad esempio, quando uno slot è stato migrato e le chiavi controllate non possono essere trovate sullo stesso nodo.

Codici di esempio

Nell'esempio seguente, la chiave controllata e la chiave specificata nel SET comando vengono mappate su diversi slot hash. L'esecuzione restituisce unCROSSSLOT ERROR.

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

L'esempio seguente mostra una transazione riuscita, poiché la chiave impostata WATCH non è stata modificata.

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

Nell'esempio seguente, un tentativo di inserire WATCH chiavi da slot diversi contemporaneamente all'interno della stessa connessione client restituisce aCROSSSLOT ERROR.

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

Limite di visualizzazione

Ogni connessione client può controllare fino a 1000 chiavi contemporaneamente.

Comandi supportati relativi a Watch

I comandi WATCH e UNWATCH sono documentati sul sito Valkey.io. Fornisce una panoramica completa dei comandi, inclusa la sintassi, il comportamento, i valori restituiti e le potenziali condizioni di errore.