

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
<a name="ServerlessWatch"></a>

ElastiCache [supporta il `WATCH` comando, che consente di monitorare le modifiche delle chiavi ed eseguire transazioni condizionali.](https://valkey.io/topics/transactions/) 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](https://valkey.io/topics/cluster-spec/#hash-tags) 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**

## Guarda e opera su tasti di slot diversi
<a name="w2aac24c33c15b1"></a>

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

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

## Guarda e opera sui tasti dello stesso slot
<a name="w2aac24c33c15b3"></a>

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

## Guarda le chiavi di Different Slots
<a name="w2aac24c33c15b5"></a>

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

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

## Limite di visualizzazione
<a name="ServerlessWatch.size"></a>

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

## Comandi supportati relativi a Watch
<a name="SupportedCommandsWatch"></a>

I comandi [WATCH](https://valkey.io/commands/watch/) [e UNWATCH](https://valkey.io/commands/unwatch/) sono documentati sul sito [Valkey.io](https://valkey.io/). Fornisce una panoramica completa dei comandi, inclusa la sintassi, il comportamento, i valori restituiti e le potenziali condizioni di errore.