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