O Tair (compatível com Redis OSS) oferece um conjunto de comandos proprietários para instâncias cluster e de divisão de leitura/escrita conectadas em modo proxy. Esses comandos permitem direcionar operações a shards de dados específicos, funcionalidade indisponível nos comandos padrão do Redis INFO, SCAN e MONITOR em ambientes com proxy e múltiplos shards.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância cluster ou de divisão de leitura/escrita do Tair conectada em modo proxy
Convenções de sintaxe
|
Notação |
Significado |
|
|
|
Palavra-chave do comando |
|
|
|
Variável — substitua por um valor real |
|
|
|
Parâmetro opcional; parâmetros sem colchetes são obrigatórios |
|
|
|
B` |
Parâmetros mutuamente exclusivos — especifique apenas um |
|
|
O parâmetro anterior pode ser repetido |
Comandos
INFO KEY
Sintaxe: INFO KEY _key_
Retorna o slot de hash e o índice do shard atribuídos a uma chave. Use este comando para verificar se várias chaves estão no mesmo slot, requisito para comandos de múltiplas chaves em instâncias cluster.
O índice de shard retornado peloINFO KEYidentifica um nó de shard de dados em uma instância cluster, e não o índice de banco de dados usado pelo comandoSELECT.
Exemplo
INFO KEY foo
Resposta
slot:12182 node_index:0
IINFO
Sintaxe: IINFO _db_idx_ [_section_] [[_section_] ...]
Retorna estatísticas de um nó de shard de dados específico, equivalente à execução do comando nativo INFO do Redis nesse shard.
|
Parâmetro |
Descrição |
Valores válidos |
|
|
Índice do nó de shard de dados |
0 até (número total de shards do cluster) |
|
|
(Opcional) Uma ou mais seções INFO a retornar |
Mesmas seções do comando nativo |
Exemplo
IINFO 1 Server
Resposta
"# Server\r\nredis_version:5.0.13\r\nos:Linux\r\ntcp_port:6379\r\nuptime_in_seconds:547026\r\nuptime_in_days:6\r\nhz:10\r\nlru_clock:4869333\r\n"
RIINFO
Sintaxe: RIINFO _db_idx_ _ro_slave_idx_ [_section_] [[_section_] ...]
Retorna estatísticas de uma réplica somente leitura específica em uma instância com divisão de leitura/escrita, equivalente à execução do comando nativo INFO do Redis nessa réplica.
|
Parâmetro |
Descrição |
Valores válidos |
|
|
Índice do shard primário |
Padrão: |
|
|
Índice da réplica somente leitura |
0 a 5 |
|
|
(Opcional) Uma ou mais seções INFO a retornar |
Mesmas seções do comando nativo |
Exemplo
RIINFO 0 0 Server
Resposta
"# Server\r\nredis_version:5.0.13\r\nos:Linux\r\ntcp_port:6379\r\nuptime_in_seconds:322575\r\nuptime_in_days:3\r\nhz:10\r\nlru_clock:4926418\r\n"
ISCAN
Sintaxe: ISCAN _db_idx_ _cursor_ [MATCH _pattern_] [COUNT _count_]
Executa uma varredura de chaves em um nó de shard de dados específico em uma instância cluster, equivalente ao comando nativo SCAN do Redis.
|
Parâmetro |
Descrição |
Valores válidos |
|
|
Índice do nó de shard de dados |
0 até (número total de shards do cluster) |
|
|
Posição do cursor; use |
Inteiro ≥ 0 |
|
|
(Opcional) Retorna apenas chaves correspondentes ao padrão |
Padrão estilo glob, ex.: |
|
|
(Opcional) Sugestão de quantidade de chaves a varrer por chamada |
Inteiro > 0 |
Exemplo: varrer todas as chaves no shard 0
ISCAN 0 0
Exemplo: filtrar chaves por padrão
ISCAN 0 0 MATCH user:*
Resposta
1) "0"
2) 1) "user:1001"
2) "user:1002"
3) "user:1003"
Exemplo: limitar chaves varridas por chamada
ISCAN 0 0 COUNT 3
Resposta
1) "0"
2) 1) "dkjfd"
2) "k"
3) "9z9"
O parâmetroCOUNTé uma sugestão, não um limite rígido. A quantidade real de chaves retornadas pode variar. Continue a iteração até que o cursor retorne"0"para concluir a varredura completa.
IMONITOR
Sintaxe: IMONITOR _db_idx_
Transmite todos os comandos processados por um nó de shard de dados específico em uma instância cluster, equivalente ao comando nativo MONITOR do Redis.
|
Parâmetro |
Descrição |
Valores válidos |
|
|
Índice do nó de shard de dados (Master) |
0 até (número total de shards do cluster) |
Execute o IMONITOR via Telnet. O exemplo abaixo mostra uma sessão completa:
$ telnet <host> <port>
Trying <host>...
Connected to <host>.
AUTH <password>
+OK
IMONITOR 0
+OK
+1682652565.538228 [0 127.0.0.1:38618] "info" "all"
+1682652566.538231 [0 127.0.0.1:38618] "info" "all"
QUIT
+OK
Para interromper a transmissão, envie QUIT.
RIMONITOR
Sintaxe: RIMONITOR _db_idx_ _ro_slave_idx_
Transmite todos os comandos processados por uma réplica somente leitura específica em uma instância com divisão de leitura/escrita, equivalente ao comando nativo MONITOR do Redis.
|
Parâmetro |
Descrição |
Valores válidos |
|
|
Índice do shard primário |
Padrão: |
|
|
Índice da réplica somente leitura |
0 a 5 |
Execute o RIMONITOR via Telnet. O exemplo a seguir mostra uma sessão completa:
$ telnet <host> <port>
Trying <host>...
Connected to <host>.
AUTH <password>
+OK
RIMONITOR 0 1
+OK
+1682653310.571527 [0 127.0.0.1:59492] "info" "all"
+1682653311.571573 [0 127.0.0.1:59492] "info" "all"
QUIT
+OK
Para interromper a transmissão, envie QUIT.