Introdução
Neste artigo pretendo iniciar uma série de artigos que vão focar em como utilizar o Redis no Azure através de exemplos práticos para os mais diversos cenários. E para iniciar essa série, vamos primeiramente entender o que é o Redis e para que ele serve de fato.
Redis
O Redis (REmote DIctionary Server) é uma estrutura de armazenamento em memória, NoSQL de chave-valor e open source. Apesar de possuir diversas utilidades (discutiremos elas mais adiante) o Redis é costumeiramente utilizado para armazenamento de cache visando sempre melhorar o desempenho de sistemas que dependem de uma grande quantidade de dados vindos do back-end.
Pelo fato do seu armazenamento ser feito em memória, ele é extremamente rápido, chegando a performance de 110.000 SETs e 81.000 GETs por segundo.
Outros dois pontos importantíssimos, são:
- Suas operações são atômicas, ou seja, uma operação sempre retornará sucesso ou falha obrigatoriamente.
- O Redis é single-threaded, e nesse caso, um fator que vale a pena mencionar é que um processador rápido com bastante cache se sobressai, se comparado com um processador de muitos núcleos com pouco cache.
Apesar de ser uma estrutura chave-valor, o Redis possui um conjunto bem rico de tipos de dados, sendo os principais:
- Strings: tipo mais básico do Redis. Eles são binários, e com isso, o tipo String pode conter qualquer tipo de dado como, por exemplo, uma imagem. Vale pontuar que o tamanho máximo da String é 512 mb.
- Lists: esse tipo nada mais é do que uma lista de Strings, classificadas por ordem de inserção. O Redis suporta uma lista de strings contendo até aproximadamente 4 bilhões de elementos.
- Sets: é uma colação não ordenada de Strings. Por padrão, os Sets não permitem elementos repetidos, sendo que adicionando o mesmo elemento várias vezes resultará em um outro conjunto com uma cópia unica desse elemento. Assim como as Lists, os Sets também podem armazenar aproximadamente 4 bilhões de elementos.
- Sorted Sets: semelhante aos Sets, porém com o recurso de serem ordenados, cada elemento é associado a um Score, sendo que a ordenação é feita sobre ele.
- Hash: utilizado majoritariamente para representar um objeto, sendo que ele mapeia um atributo e seu respectivo valor (assim como em um objeto).
A respeito de sua aplicabilidade, conforme mencionado no inicio do artigo, o Redis é bastante versátil, se saindo bem nos mais variados cenários, sendo os principais:
- Armazenamento em cache (cache de conteúdo): nesse cenário o Redis serve para armazenar conteúdos que raramente são alterados, trazendo maior velocidade e consequentemente melhorando o desempenho das aplicações. Com isso, podemos poupar por requisições desnecessárias no servidor.
- Gerenciamento de Sessão (cache de sessão): aqui, o Redis pode armazenar sessões com um tempo de vida já definido, sendo perfeito para armazenar informações de um usuário logado na sua aplicação, bem como um carrinho de compras e etc.
- Classificações em Real-Time (cache-aside): usando o sorted set, você pode criar um rank e atualizá-lo conforme demanda (cache-aside) garantindo que sua aplicação mostre uma classificação em tempo real.
- Filas: Sendo single-threaded e suas operações atômicas, o Redis é uma ótima opção para ser usado como um agente de mensagens.
Agora que temos uma boa base sobre como Redis funciona e seus principais cenários de aplicação, no nosso próximo artigo vamos por a mão na massa e criar nosso servidor no Azure e então, começar a implementar alguns exemplos abordados nesse primeiro artigo.
Espero que tenham gostado e até o próximo artigo!
Obrigado.