O que é o REDIS
Ele é um projeto aberto e serve para armazenamento de dados em memória... Calma! É possível também persistí-los em disco! E também é possível definir um tempo de vida para seus dados se necessário! As seguintes estruturas de dados são suportadas por ele: strings, hashes, listas, bitmaps, gesospatial indexes, etc. Também é possível realizar a replicação de dados e configurar serviços de alta disponibilidade. Outra coisa bem legal é o serviço de mensageria que te permite notificar os clientes conectados quando determinados eventos acontecem.
Agora vamos instalar o REDIS no Windows
Clique aqui para fazer o download da versão 3.2.100 ou se preferir copie e cole o link abaixo em seu browser: https://github.com//MSOpenTech/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.msi
Destaquei algumas coisas importantes sobre a instalação:
- esta instalação já definirá o REDIS como um windows service e neste caso uma porta será definida para ele;
- é recomendado definir uma quantidade máxima de memória para que ele não fique indisponível devido a um erro do tipo OUT OF MEMORY por exemplo;
- após instalação, para proteger seus dados, também é recomendado definir uma senha para o seu serviço
A instalação é bastante simples e você precisará definir apenas a porta e a quantidade máxima de memória. Após a instalação vá para o diretório onde o REDIS foi instalado e abra o arquivo C:\Program Files\Redis\redis.windows-service.conf Localize a linha requirepass, descomente-a e defina uma senha
requirepass prodesp@123
Será necessário reiniciar o serviço e para isso você poderá abrir o DOS e executar
- net stop redis
- net start redis
Usando KEYs (GET/SET/TTL/EXPIRE)
Agora vamos abrir um client terminal usando o programa redis-cli.exe dentro de C:\Program Files\Redis Observe que o endereço do seu servidor e a porta para conexão já estão definidos
Vamos nos autenticar informando a senha prodesp@123 Digite AUTH prodesp@123
Agora vamos criar uma variável chamada myKey com valor 200, digite:
set myKey 200
Para ler o valor da variável em seu banco digite
get myKey
Próximo passo vamos definir um tempo de vida de 30 segundos para esta variável usando o comando
expire myKey 30
Vamos ver o tempo restante de vida usando o comando
ttl myKey
Quando a variável expirar, deixar de existir, e você digitar o comando get o retorno será NIL e não mais 200
Esta é a URL contendo a lista de comandos suportados. Muito fácil e intuitivo - http://redis.io/commands
Usando REDIS no Visual Studio 2015
Crie um novo projeto no Visual Studio do tipo Console Application Instale o pacote StackExchange.Redis que contém uma lib muito legal e de fácil uso Adicione ao using a linha using StackExchange.Redis;
A conexão ao serviço poderá ser feita de duas formas:
- usando uma instância da classe ConfigurationOptions
- usando uma string com seus campos separados por ","
var options = new ConfigurationOptions {
EndPoints = { { "127.0.0.1", 6379 } },
Password = "prodesp@123",
AllowAdmin = true, // este cara aqui diz ao REDIS que comandos de administração poderão ser executados
ClientName = "VS2015-REDIS"
};
var cm = ConnectionMultiplexer.Connect(options);
var db = cm.GetDatabase();
// vamos criar uma variável myKey com valor 200
db.StringSet("myKey", "200");
// vamos definir o tempo de vida desta variável para 30 segundos
var when = new TimeSpan(0, 0, 30);
db.KeyExpire("myKey", when);
// vamos ler o valor da variável
var value = db.StringGet("myKey");
// vamos verificar quanto tempo de vida ela ainda tem
var time = db.KeyTimeToLive("myKey").ToString();
Como dever de casa aprendam a gravar os dados localmente, deletar variáveis, gerenciar listas, ordená-las, etc.
Configurando a replicação de dados
Se você deseja criar uma segunda máquina para replicar os seus dados você poderá realizar os seguintes passos:
- Digamos que escolhemos a máquina secundária com IP 10.1.0.3 na Porta 6379 e definimos a senha como masterRPL
- Em nossa máquina principal com IP 10.1.0.2 na Porta 6379 devemos alterar o arquivo de configuração as seguintes chaves
- slaveof 10.1.0.3 6379
- masterauth masterRPL
Com isso termos uma replicação dos dados modificados ou inseridos em 10.1.0.2 para a máquina 10.1.0.3
Authors and Contributors
Autor: Renato Matos
Linkedin: https://br.linkedin.com/in/renato-matos-2994b09
E-mail: renato.matos79@gmail.com