Como usar o Redis Scan

Como usar o Redis Scan
Este guia ensinará como trabalhar com o comando Redis Scan. O comando de varredura é usado para iterar através das chaves dentro de um banco de dados Redis específico.O comando de varredura em Redis é um iterador baseado em cursor. Portanto, o servidor Redis retornará um cursor atualizado em todas as chamadas de comando.

O que é Redis Scan?

Como mencionado, a varredura em Redis é um iterador baseado em cursor que permite que você itera o conjunto de chaves em um banco de dados Redis específico. O comando aceita a posição do cursor como o argumento.

O servidor retorna um cursor de atualização sempre que o comando é chamado. Usando o cursor atualizado como um argumento na seguinte chamada de comando pode ser usada.

A iteração começa quando o cursor está na posição 0 e para quando o cursor proveniente do servidor está em 0.

Usando a digitalização - exemplos

Vamos fazer alguns exemplos para ilustrar como o comando de varredura funciona. Comece criando uma coleção de chaves e valores, como mostrado no comando abaixo:

127.0.0.1: 6379> mset key1 valor1 key2 value2 key3 value3 key4 value4 key5 value5 key6 value6
OK

O exemplo acima insira um conjunto de pares de chaves e valores dummy para fins de ilustração.

Agora que temos um banco de dados com chaves e valores, podemos usar o comando de varredura para iterar sobre as chaves.

O comando pode ser executado como:

127.0.0.1: 6379> varredura 0
1) "0"
2) 1) "Key4"
2) "RQ: acabado: padrão"
3) "Key5"
4) "Key6"
5) "Key2"
6) "Key3"
7) "RQ: filas"
8) "Key1"
9) "Capitães"

Uma vez que executamos o comando, ele iterará sobre as chaves no banco de dados e retornará todas as chaves disponíveis.

Nota: o comando de varredura retornará apenas as dez primeiras chaves no banco de dados. Como o comando de varredura pode buscar os dez primeiros elementos em nosso exemplo, ele retorna um valor inteiro de 0, como mostrado acima.

Vamos dar um exemplo em que o cursor retornou do servidor não é 0. Se adicionarmos as teclas como mostrado no comando abaixo:

MSET key7 valor7 key8 value8 key9 valu

Se executarmos o comando de varredura, ele retornará a última posição onde o cursor parou.

127.0.0.1: 6379> varredura 0
1) "13"
2) 1) "Key4"
2) "Key9"
3) "RQ: acabado: padrão"
4) "Key5"
5) "Key6"
6) "Key8"
7) "Key2"
8) "Key3"
9) "Key10"
10) "Key7"
11) "RQ: filas"

Neste exemplo, a posição do cursor é de 13. Podemos usar esta posição para digitalizar as chaves restantes.

127.0.0.1: 6379> Scan 13
1) "0"
2) 1) "Key11"
2) "Key1"
3) "Key12"
4) "Capitães"

Como o comando busca todas as chaves, neste caso, ele retorna o cursor na posição 0.

Opções de digitalização

O comando de varredura aceita duas opções principais:

  1. CONTAR
  2. CORRESPONDER

Contagem de varredura

O comando Count permite modificar quantas chaves o comando de varredura será buscado por chamada. Por padrão, o comando de varredura busca dez chaves.

No entanto, podemos modificar isso definindo o comando de contagem.

127.0.0.1: 6379> varredura 0 contagem 15

Exemplo de saída do comando acima é como mostrado:

1) "0"
2) 1) "Key4"
2) "Key9"
... truncado ..
14) "Key12"
15) "Capitães"

Neste exemplo, definimos o cursor para retornar 15 elementos em vez do padrão 10. Como não existem mais de 15 teclas no banco de dados, o servidor retorna a posição da chave em 0.

Correspondência de varredura

A opção Match permite que você digitalize as chaves que correspondem a um padrão específico. Por exemplo, para retornar todas as chaves que correspondem a K*, podemos fazer.

127.0.0.1: 6379> varredura 0 corresponda k*
1) "13"
2) 1) "Key4"
2) "Key9"
3) "Key5"
4) "Key6"
5) "Key8"
6) "Key2"
7) "Key3"
8) "Key10"
9) "Key7"

O comando acima retorna apenas as chaves que correspondem ao padrão especificado.

Você pode usar as opções de correspondência e contagem no mesmo comando.

127.0.0.1: 6379> varredura 0 correspondência k* contagem 15
1) "0"
2) 1) "Key4"
2) "Key9"
---TRUNCADO---
11) "Key1"
12) "Key12"

Conclusão

Este guia oferece o uso básico e exemplos de uso do comando Redis Scan. A varredura permite que você itera através das chaves do banco de dados usando uma posição de cursor. Você pode verificar a documentação para obter mais variações de varredura.