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