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:
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.