

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cómo empezar a usar Watch in Serverless
<a name="ServerlessWatch"></a>

ElastiCache admite el `WATCH` comando, que le permite monitorear las claves para detectar cambios y ejecutar [transacciones](https://valkey.io/topics/transactions/) condicionales. El `WATCH` comando es particularmente útil para aplicaciones que requieren un control de simultaneidad optimista, ya que garantiza que las transacciones solo se ejecuten si las claves monitoreadas no se han modificado. Esto incluye las modificaciones realizadas por un cliente, como la escritura de comandos, y por la propia Valkey, como la caducidad o el desalojo. Si las claves se modificaron desde el momento en que se establecieron `WATCH` y antes de que `EXEC` se reciban, se cancelará toda la transacción. 

En el ElastiCache caso de Serverless, se introducen las siguientes restricciones: 

ElastiCache Serverless `WATCH` está limitado a una sola ranura de hash. Esto significa que solo las claves que se asignan a la misma ranura de hash se pueden ver al mismo tiempo mediante la misma conexión, y la transacción que sigue los comandos de observación solo puede funcionar en la misma ranura de hash. Cuando una aplicación intenta ver claves de diferentes ranuras de hash o ejecutar comandos de transacción que funcionan con claves asignadas a una ranura de hash diferente a la de las claves observadas, se `CROSSSLOT` produce un error. [Las etiquetas hash](https://valkey.io/topics/cluster-spec/#hash-tags) se pueden utilizar para garantizar que se asignen varias claves a la misma ranura hash.

Además, `SCAN` el comando no se puede ejecutar dentro de una conexión con claves vigiladas y devolverá un `command not supported during watch state` error. 

La transacción se cancelará (como si se tocaran claves vigiladas) cuando ElastiCache Serverless no tenga la certeza de si se ha modificado una clave. Por ejemplo, cuando se ha migrado una ranura y las claves vigiladas no se encuentran en el mismo nodo.

**Ejemplos de código**

## Observe y maneje las llaves de diferentes ranuras
<a name="w2aac24c33c15b1"></a>

En el siguiente ejemplo, la clave observada y la clave especificada en el `SET` comando se asignan a diferentes ranuras de hash. La ejecución devuelve 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
```

## Observe y opere las teclas de la misma ranura
<a name="w2aac24c33c15b3"></a>

En el siguiente ejemplo, se muestra una transacción exitosa, ya que la clave ingresada `WATCH` no se ha cambiado.

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

## Mira las llaves de diferentes máquinas tragamonedas
<a name="w2aac24c33c15b5"></a>

En el siguiente ejemplo, si se intenta introducir `WATCH` claves de diferentes ranuras simultáneamente dentro de la misma conexión de cliente, se obtiene un`CROSSSLOT ERROR`.

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

## Límite de visualización
<a name="ServerlessWatch.size"></a>

Cada conexión de cliente puede ver hasta 1000 claves al mismo tiempo.

## Comandos compatibles relacionados con Watch
<a name="SupportedCommandsWatch"></a>

Los comandos [WATCH](https://valkey.io/commands/watch/) y [UNWATCH](https://valkey.io/commands/unwatch/) están documentados en el sitio web [Valkey.io](https://valkey.io/). Proporciona una descripción completa de los comandos, incluida su sintaxis, comportamiento, valores de retorno y posibles condiciones de error.