Introdução ao Watch em Serverless - Amazon ElastiCache

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Introdução ao Watch em Serverless

ElastiCache suporta o WATCH comando, que permite monitorar as chaves em busca de alterações e executar transações condicionais. O WATCH comando é particularmente útil para aplicativos que exigem controle otimista de simultaneidade, garantindo que as transações sejam executadas somente se as chaves monitoradas não tiverem sido modificadas. Isso inclui modificações feitas por um cliente, como comandos de gravação, e pelo próprio Valkey, como expiração ou despejo. Se as chaves forem modificadas a partir do momento em que foram configuradas WATCH e no momento em EXEC que foram recebidas, toda a transação será abortada.

Para ElastiCache Serverless, as seguintes restrições são introduzidas -

ElastiCache O Serverless WATCH tem como escopo um único slot de hash. Isso significa que somente as chaves mapeadas para o mesmo slot de hash podem ser monitoradas ao mesmo tempo pela mesma conexão, e a transação que segue os comandos de observação só pode operar no mesmo slot de hash. Quando um aplicativo tenta monitorar chaves de diferentes slots de hash ou executar comandos de transação que operam em chaves mapeadas para um slot de hash diferente do das chaves monitoradas, um CROSSSLOT erro será retornado. As tags de hash podem ser usadas para garantir que várias chaves sejam mapeadas no mesmo slot de hash.

Além disso, SCAN o comando não pode ser executado dentro de uma conexão com teclas monitoradas e retornará command not supported during watch state um erro.

A transação será abortada (como se as teclas monitoradas tivessem sido tocadas) quando a ElastiCache Serverless não tiver certeza se uma chave foi modificada. Por exemplo, quando um slot foi migrado e as chaves monitoradas não podem ser encontradas no mesmo nó.

Exemplos de código

No exemplo a seguir, a chave monitorada e a chave especificada no SET comando mapeiam para diferentes slots de hash. A execução retorna umCROSSSLOT ERROR.

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

O exemplo a seguir mostra uma transação bem-sucedida, pois a chave definida WATCH não foi alterada.

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

No exemplo a seguir, uma tentativa de WATCH digitar chaves de slots diferentes simultaneamente na mesma conexão de cliente retorna CROSSSLOT ERROR a.

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

Limite do relógio

Cada conexão de cliente pode assistir até 1000 teclas ao mesmo tempo.

Comandos suportados relacionados ao Watch

Os comandos WATCH e UNWATCH estão documentados no site Valkey.io. Ele fornece uma visão geral abrangente dos comandos, incluindo sua sintaxe, comportamento, valores de retorno e possíveis condições de erro.