Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 2 da Aula 4 - Mais buscas e padrões

Olá!

KEYS resultado:1[57]-??-????:*sena

No caso acima é referente aos dias 15 e 17, mas e se fosse, por exemplo, 05 e 17, seria como?

KEYS resultado:[01][57]-??-????:*sena?????

4 respostas

Oi Vitor, tudo bem?

Isso mesmo, mas só lembrando que isso formará as seguintes combinações:

05; 07; 15; 17

Além de buscar os dias 05 e 17, buscaria também os dias 07 e 15.

Eu particularmente não conheço uma forma para recuperar apenas o 05 e o 17.

Abraços!

Oi Vitor, tudo bem?

Seu problema foi solucionado? Estou fechando o tópico, caso não tenha sido solucionado, não hesite em abrir o tópico novamente por favor.

Bom dia!

Pode encerrar o caso, se quiser, qualquer coisa solicito um novo. Contudo, não foi solucionado, porque vocês e eu ainda não sabemos como recuperar apenas o 05 e o 17, mas assim que eu voltar a rever o conteúdo eu alinho.

solução!

Bom dia Vitor,

Olhando a documentação do comando KEYS você vê que ele não suporta esse tipo de operação. O comando SCAN+MATCHES (linkado na documentação do KEYS) também parece não suportar.

A solução seria então chamar o KEYS duas vezes. Mas existe uma outra abordagem....

Nesse tipo de situação, de busca numérica em determinados valores, uma abordagem é armazenar seus dados como BITMAPS. A sacada do REDIS está em armazenar de uma maneira que a busca seja trivial, então um BITMAP suporta esse tipo de busca pois bastaria buscar os elementos para os quais o BITMAP estaria ativo na posição 5 ou 17, 5 e 16 etc por exemplo entre outras maneiras de mapear os dados.

Lembre-se que voce nao precisa deixar seus dados normalizados (a ideia do banco de suporte é justo não deixar normalizado ao máximo), então "não teria problema" de armazenar os dados de uma maneira para certas buscas e de outra para outras buscas, duplicando o armazenamento mas deixando a query mais rapida.

Em geral quando nos questionamos sobre descobrir quais são as KEYS, poderiamos refatorar e pensar em bitmaps, fazendo com que as keys sejam posicoes do nosso bitmap

Abraço

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software