Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Redis String command enhancements

Última atualização: Jun 26, 2026

CAS (Compare And Set) e CAD (Compare And Delete) são comandos condicionais atômicos para strings Redis nativas em instâncias Tair. O CAS atualiza o valor de uma chave somente quando ele corresponde ao valor esperado; o CAD exclui uma chave somente quando seu valor coincide.

Nota

Estes comandos se aplicam exclusivamente a strings Redis nativas. Para operações equivalentes em TairStrings, use EXCAS e EXCAD.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância Tair baseada em DRAM ou otimizada para memória persistente na versão secundária 1.2.3 ou posterior

  • (Recomendado) Instância atualizada para a versão secundária mais recente, para obter recursos adicionais e maior estabilidade — consulte Atualizar a versão secundária de uma instância

  • (Para instâncias em cluster ou com separação de leitura/gravação) Nós de proxy atualizados para a versão secundária mais recente, para que todos os comandos sejam executados corretamente

Visão geral dos comandos

Comando

Sintaxe

Descrição

CAS

`CAS key oldvalue newvalue [EX

PX

EXAT

PXAT time]`

Compara o valor atual da chave com oldvalue. Se coincidirem, atualize o valor para newvalue.

CAD

CAD key value

Compara o valor atual da chave com value. Se coincidirem, exclua a chave.

Convenções de sintaxe

Notação

Significado

UPPERCASE

Palavra-chave do comando

italic

Variável — substitua por um valor real

[options]

Parâmetro opcional; parâmetros sem colchetes são obrigatórios

`A

B`

Mutuamente exclusivo — especifique apenas um

...

O parâmetro pode ser repetido

CAS

Compara atomicamente o valor atual de uma chave com oldvalue e, se coincidirem, substitui pelo valor newvalue.

Sintaxe: CAS key oldvalue newvalue [EX|PX|EXAT|PXAT time]

Complexidade de tempo O(1)

Parâmetros

Parâmetro

Descrição

key

Chave de destino do tipo string

oldvalue

Valor atual esperado da chave

newvalue

Valor a definir caso oldvalue corresponda ao valor atual

EX time

Expiração relativa em segundos. 0 faz a chave expirar imediatamente. Se omitido, qualquer TTL existente é removido e a chave não expira.

PX time

Expiração relativa em milissegundos. 0 faz a chave expirar imediatamente. Se omitido, qualquer TTL existente é removido e a chave não expira.

EXAT time

Expiração absoluta como timestamp Unix em segundos. 0 faz a chave expirar imediatamente. Se omitido, qualquer TTL existente é removido e a chave não expira.

PXAT time

Expiração absoluta como timestamp Unix em milissegundos. 0 faz a chave expirar imediatamente. Se omitido, qualquer TTL existente é removido e a chave não expira.

Nota

Se a chave tiver um Time to Live (TTL) e você execute CAS sem um parâmetro de expiração, o TTL será removido e a chave não expirará.

Valor de retorno

Valor

Significado

1

Valores coincidiram; chave atualizada

0

Valores não coincidiram; chave inalterada

-1

Chave não existe

Error

Outra falha

Exemplos

A sessão a seguir demonstra os três resultados possíveis do CAS: valor divergente, valor coincidente e expiração.

127.0.0.1:6379> SET foo bar
OK
127.0.0.1:6379> CAS foo baa bzz
(integer) 0
127.0.0.1:6379> GET foo
"bar"
127.0.0.1:6379> CAS foo bar bzz
(integer) 1
127.0.0.1:6379> GET foo
"bzz"
127.0.0.1:6379> CAS foo bzz too EX 10
(integer) 1
127.0.0.1:6379> GET foo
"too"

Após o TTL de 10 segundos expirar, a chave deixa de existir:

127.0.0.1:6379> GET foo
(nil)

CAD

Compara atomicamente o valor atual de uma chave com value e, se coincidirem, exclua a chave.

Sintaxe: CAD key value

Complexidade de tempo O(1)

Parâmetros

Parâmetro

Descrição

key

Chave de destino do tipo string

value

Valor atual esperado da chave

Valor de retorno

Valor

Significado

1

Valores coincidiram; chave excluída

0

Valores não coincidiram; chave inalterada

-1

Chave não existe

Error

Outra falha

Exemplos

A sessão a seguir demonstra os três resultados possíveis do CAD: valor divergente, chave inexistente e exclusão bem-sucedida.

127.0.0.1:6379> SET foo bar
OK
127.0.0.1:6379> CAD foo bzz
(integer) 0
127.0.0.1:6379> CAD not-exists xxx
(integer) -1
127.0.0.1:6379> CAD foo bar
(integer) 1
127.0.0.1:6379> GET foo
(nil)

Próximos passos