O que é Redis ?

O que é Redis ?

Porque usar?

REDIS ou Remote DIctionary Server é um banco de dados noSQL feito para rodar em memória muito conhecido por ser Open Source e também extremamente rápido.

Ele suporta desde estruturas de dados simples como Lists, Sets e Strings até estruturas mais complexas como Hyperlogslogs, Bitmaps e dados GeosEspaciais.

Porque utilizar um banco de dados em memória?

Por mais que seja executado em memória, o redis é capaz de criar snapshots que nada mais são do que pequenas cópias do estado atual em disco oque possibilita o retorno do estado mais recente caso o serviço caia e seja necessário reiniciar.

Sem contar sua compatibilidade com Clusters o que possibilita o compartilhamento de seu estado atual com mais de um server, que poderá ser utilizado como um backup assim garantindo a entrega mesmo na queda de um ou mais servidores.

Pra que utilizar o Redis?

Por ser de estrutura simples o redis é bastante volátil, podendo assim ser utilizado para diversas funcionalidades em contextos diferentes, pode servir como por exemplo banco de cache, menssageria, classificador, gerenciador de sessões e muito mais.

  • Como memória Cache

O redis pode servir para armazenar em seu servidor o resultado de uma consulta feita frequentemente em sua aplicação, assim da próxima vez que um usuário for realizar a mesma consulta ele busca em seu servidor redis que puxa através da memória ( chave | valor ) o resultado diretamente sem precisar passar pelo banco de dados novamente, economizando um tempo considerável.

  • Como menssageria

também pode ser utilizado para formar uma arquitetura conhecida como pub/sub onde recebe mensagem direcionadas para um tópico especifico e todos interessados neste tópicos são alertados quando há a chegada de uma nova publicação.

Onde rodar o Redis ?

Redis é distribuido através da licença BSD e possui suporte nativo para Linux e OSX, caso você queira instalar e utiliza-lo no windows 10 é preciso obter Windows Subsystem for Linux ou no mais recomendado dos casos subir uma box no Docker.

docker run --name container_name -it redis

ps: Você pode testar o redis também através do site try.redis.io

Compatibilidade

O redis é desenvolvido em Ansi C e possui compatibilidade com diversas linguagens e frameworks como Java, Node, Ruby, Python, Dart, C, Elixir, Lua, Noa, PHP e muitas outras.

image.png

Alguns Comando mais Básicos

  • redis make - Faz a compilação

  • redis server - Sobe o servidor do redis

-redis sentinel - Detecta falhas no cluster e retorna para versão estável

-redis-cli - Abre o terminal de comunicação com o banco

    • get - dentro do servidor podemos recuperar valores pela chave.
    • set - podemos também adicionar uma chave e um valor para está chave.
    • del - deleta através da chave a chave e o valor.
  • redis-benchmark - Faz a verificação da performance no banco.

Importante

Por mais versátil que o redis seja ele não substitui o banco de dados relacional conhecido, o objetivo dele é acesso rápido das informações em estruturas diferentes das relacionais, quando utilizado de maneira correta no projeto pode aumentar e muito a escalabilidade do mesmo.

para mais informações leia a documentação abaixo.
Documentação do Redis