

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Commencer à utiliser Watch in Serverless
<a name="ServerlessWatch"></a>

ElastiCache prend en charge la `WATCH` commande, qui vous permet de surveiller les modifications apportées aux touches et d'exécuter [des transactions](https://valkey.io/topics/transactions/) conditionnelles. La `WATCH` commande est particulièrement utile pour les applications qui nécessitent un contrôle de simultanéité optimiste, garantissant que les transactions ne sont exécutées que si les clés surveillées n'ont pas été modifiées. Cela inclut les modifications apportées par un client, comme les commandes d'écriture, et par Valkey lui-même, comme l'expiration ou l'expulsion. Si les clés ont été modifiées à partir du moment où elles ont été définies `WATCH` et au moment `EXEC` de leur réception, la transaction sera annulée dans son intégralité. 

Pour le ElastiCache mode Serverless, les contraintes suivantes sont introduites : 

ElastiCache Le mode Serverless `WATCH` est limité à un seul emplacement de hachage. Cela signifie que seules les clés qui correspondent au même emplacement de hachage peuvent être surveillées en même temps par la même connexion, et que la transaction qui suit les commandes de surveillance ne peut fonctionner que sur le même emplacement de hachage. Lorsqu'une application tente de surveiller des clés provenant de différents emplacements de hachage ou d'exécuter des commandes de transaction qui agissent sur des clés mappées à un emplacement de hachage différent de celui des clés surveillées, une `CROSSSLOT` erreur est renvoyée. Les [balises de hachage](https://valkey.io/topics/cluster-spec/#hash-tags) peuvent être utilisées pour garantir que plusieurs clés sont mappées sur le même emplacement de hachage.

De plus, `SCAN` la commande ne peut pas être exécutée dans une connexion avec des touches surveillées et renverra `command not supported during watch state` une erreur. 

La transaction sera abandonnée (comme si des touches surveillées avaient été touchées) lorsque ElastiCache Serverless n'a aucune certitude quant à savoir si une clé a été modifiée. Par exemple, lorsqu'un emplacement a été migré et que les clés surveillées sont introuvables sur le même nœud.

**Exemples de code**

## Regardez et manipulez des clés provenant de différents emplacements
<a name="w2aac24c33c15b1"></a>

Dans l'exemple suivant, la clé surveillée et la clé spécifiée dans la `SET` commande correspondent à différents emplacements de hachage. L'exécution renvoie 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
```

## Regardez et manipulez les clés depuis le même emplacement
<a name="w2aac24c33c15b3"></a>

L'exemple suivant montre une transaction réussie, car la clé définie `WATCH` n'a pas été modifiée.

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

## Regardez les clés de différentes machines à sous
<a name="w2aac24c33c15b5"></a>

Dans l'exemple suivant, une tentative de saisie simultanée de `WATCH` clés provenant de différents emplacements au sein de la même connexion client renvoie un`CROSSSLOT ERROR`.

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

## Limite de surveillance
<a name="ServerlessWatch.size"></a>

Chaque connexion client peut regarder jusqu'à 1 000 clés en même temps.

## Commandes prises en charge liées à Watch
<a name="SupportedCommandsWatch"></a>

Les commandes [WATCH](https://valkey.io/commands/watch/) et [UNWATCH](https://valkey.io/commands/unwatch/) sont documentées sur le site Web de [Valkey.io](https://valkey.io/). Il fournit une vue d'ensemble complète des commandes, notamment de leur syntaxe, de leur comportement, de leurs valeurs renvoyées et des conditions d'erreur potentielles.