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.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
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