Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Como obter todas as chaves no Redis

  • A maioria (mas não todos) dos objetos usa uma chave
    • Usando namespaces
  • Recuperando todas as chaves existentes

Como outros mecanismos de banco de dados não relacionais, entender como o Redis lida com estruturas e associações de dados às vezes pode ser difícil. Isso é particularmente verdadeiro quando o Redis é comparado a bancos de dados relacionais mais tradicionais com tabelas em quarentena, cada uma contendo várias linhas e colunas para armazenar dados.

Como o Redis não é relacional, tudo no sistema é configurado com key/value básico pares no nível mais simples. Durante o desenvolvimento em particular, pode ser complicado acompanhar tudo o que já existe no banco de dados, portanto, neste breve tutorial, abordaremos o método para recuperar todas as keys de um banco de dados Redis com alguns comandos simples.

A maioria (mas não todos) dos objetos usa uma chave


Para a grande maioria do armazenamento de dados com Redis, os dados serão armazenados em uma simples key/value par. Isso é melhor mostrado através do redis-cli (interface de linha de comando) usando GET e SET comandos.

Por exemplo, podemos querer armazenar algumas informações sobre books , como o title e author de alguns dos nossos favoritos.
> SET title "The Hobbit"
OK
> SET author "J.R.R. Tolkien"
OK

O title e author são as keys definimos e os valores reais da string foram especificados depois. Para que possamos visualizá-los com GET , igual a:
> GET title
"The Hobbit"
> GET author
"J.R.R. Tolkien"

Usando namespaces


Isso é muito bom, mas como adicionamos outro livro? Não podemos reutilizar o mesmo title e author keys ou sobrescreveremos os dados existentes. Em vez disso, podemos usar a sintaxe de namespace usando um : separador e dando a cada title ou author inserir uma key numérica exclusiva :
> SET title:1 "The Hobbit"
OK
> SET author:1 "J.R.R. Tolkien"
OK
> SET title:2 "The Silmarillion"
OK
> SET author:2 "The Silmarillion"
OK

Agora usando GET requer adicionar a key numérica exclusiva também:
> GET title:1
"The Hobbit"
> GET title:2
"The Silmarillion"

Recuperando todas as chaves existentes


Acontece que cada SET comando que emitimos acima criou uma nova e exclusiva key em nosso banco de dados Redis. Para obter uma lista de todas as keys atuais que existem, basta usar as KEYS comando:
> KEYS *
1) "title:1"
2) "title:2"
3) "title"
4) "author:2"
5) "author"
6) "author:1"

Seguindo KEYS com um asterisco (* ) – que funciona como uma pesquisa curinga – estamos pedindo ao Redis para recuperar todas as chaves do sistema. Assim, não vemos apenas nossos dois title originais e author keys, mas também as quatro versões enumeradas que se seguiram.

A sintaxe após KEYS pode ser usado para pesquisar palavras ou frases específicas dentro da chave, ou a correspondência exata também. Aqui queremos todas as chaves que contenham o texto 'title' :
> KEYS *title*
1) "title:1"
2) "title:2"
3) "title"

CUIDADO:Conforme mencionado na documentação oficial, é aconselhável evitar o uso das KEYS comando em bancos de dados muito grandes, mas principalmente evite usá-lo em um ambiente de produção. Desde KEYS está retornando potencialmente todas as chaves do sistema, isso pode ter um impacto negativo dramático no desempenho.