Redis – o que é e para que serve?

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Vamos falar do Redis, um banco de dados não relacional, também conhecido por NOSQL (Not Only SQL), que foi criado por  Salvatore Sanfiippo e liberado de forma open-source em 2009.

Redis significa REmote DIctionary Server, e já pelo seu significado, já podemos ter uma ideia de como ele trabalha e armazena os dados. Os dados são armazenados na forma de chave-valor, lembrando a estrutura do Dictionary do .net e do Map do Java. Um ponto importante que vale chamar a atenção aqui, é que o valor utilizado como chave no Redis pode possuir diferentes formatos, podendo ser strings, hashes, lists, sets e sets ordenados.

O Redis é extremamente rápido, tanto para escrita como para leitura dos dados, graças ao fato de armazenar seus dados em memória. Apesar disso, o Redis permite que os dados sejam persistidos fisicamente caso desejado.

Outra característica importante do Redis, é que todos os comandos executados são atômicos, isso graças à forma com que o Redis é executado, sendo ele uma aplicação single-threaded, que executa um comando por vez, ou seja, se um comando estiver em execução, os demais precisam aguardar.

O Redis é um servidor TCP, e seu funcionamento baseado em um modelo cliente-servidor é bastante simples, dessa forma, quando uma requisição é feita para o Redis, um comando é enviado ao servidor (Redis) pelo cliente, e este fica aguardando uma resposta do servidor através de uma conexão estabelecida via socket. Quando o servidor processa o comando, ele envia a resposta de volta ao cliente.

Baseado nessas características, podemos já imaginar uma série de aplicações para o Redis, certo? Porém, precisamos ter um pouco de cuidado, e saber aonde ele pode ser utilizado, e em quais situações ele não pode ser utilizado. Para isso é importante ressaltar alguns pontos sobre o Redis:
• Ele não é e não substitui um banco de dados relacional como o MySQL, Oracle, SQL Server, FireBird, PostgreSQL;
• Não é um banco de dados orientado a documentos como o MongoDB;
• Não é um banco de dados que você deveria usar para armazenar todos
os seus dados;
• Não possui suporte oficial ao Windows;
• Não utiliza o protocolo HTTP.

Como falamos acima, o Redis funciona baseado em chave-valor, e nossas pesquisas devem ser feitas sempre pela chave, e nunca pelo valor. Isso traz algumas limitações em seu uso, e esse é um dos fatores determinantes para as restrições apontadas acima. Apesar disso, o Redis permite que sejam feitas consultas de chaves utilizando determinados padrões, como os caracteres *, ? e []. Veremos melhor como funcionam o uso desses padrões em um post futuro.

Baseado nessas características, o Redis é uma boa opção para cenários que você precisa de alta performance para gravação e/ou leitura de dados baseado em chave-valor, sendo ele muito utilizado para servir como um servidor de cache para a aplicação, pois além de tudo, ele ainda permite que uma chave expire após um determinado período, dessa forma pode ser utilizado para gerenciar sessões de usuário.

Vimos um pouco do que é e para que serve o Redis, e no nosso próximo post, vamos ver como fazemos para instalar e depois veremos como iniciar o Redis.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

8 thoughts on “Redis – o que é e para que serve?

  1. Para mim que desenvolvo sistemas de segurança da informação baseados na ferramenta vejo o artigo se foca mais o que o Redis NÂO PODE FAZER. O realmente importante é o “jeito que ele faz”. A Redis Labs classifica o produto uma ferramenta que EXPÕE ESTRUTURAS DE DADOS que podem ser de qualquer tipo como classes instanciadas que podem ser persistidas e usadas durante o acesso. Isso possibilita sim trabalhar com documentos desde que faça um componente para isso que suporta grandes .dimensões de dados. Com certeza Redis e SQL não combinam mas colocar 400 milhões de linhas no “MySQL” provavelmente o “engasgará” mas o Redis consegue, localizando conteúdos com velocidade impressionante. Para quem usa linguagens de “scripting” como o Python e outras a integração é grande dando suporte total a armazenar objetos como dicionários e classes personalizadas. O”motor” do produto é residente em memória o que explica em parte a sua performance. Mas não use para fazer relatórios. 2 casas decimais não é com o Redis mas 10 é sua nota e eu uso em window acessando via TCP. para usar http coloca-se um servidor web na frente pô! Nós somos ou não somos desenvolvedores?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *