Sobre o Redis

O Redis é um banco de dados NoSQL open-source do modelo chave-valor em memória, que possui licenciamento BSD e que pode ser utilizado como cache para o Fluig. Ele possui funcionalidades extras, como a possibilidade de ser utilizado em cluster com fail-over.

Site oficial: http://redis.io

© Redis, and the Redis logo are the trademarks of Salvatore Sanfilippo in the U.S. and other countries.

Download do Redis

Download do instalador para Linux

http://redis.io/download

Download do instalador para Windows

https://github.com/MSOpenTech/redis/releases

 

Instalação do Redis em modo single-server

Instalação do Redis como serviço em Linux

Link original: http://redis.io/topics/quickstart#installing-redis-more-properly

A forma sugerida de instalar Redis em Linux é compilá-lo a partir dos fontes, pois não há outras dependências além do que um compilador GCC e da biblioteca libc.

wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
make install

Vamos supor que você já copiou redis-server e redis-cli os executáveis em /usr/local/bin, ou executou o comando make install

Crie os seguintes diretórios:

sudo mkdir /etc/redis
sudo mkdir /var/redis

Copie o script de inicialização disponibilizado sob o diretório utils para /etc/init.d. Sugerimos renomeá-lo com o nome da porta onde você está executando esta instância do Redis.

sudo cp utils/redis_init_script /etc/init.d/redis_6379

Edite o script de inicialização. Certifique-se de modificar REDISPORT de acordo com a porta que você está usando. Tanto o caminho do arquivo pid e o nome do arquivo de configuração dependem do número de porta

sudo vi /etc/init.d/redis_6379

Copie o arquivo de configuração do modelo que você vai encontrar no diretório raiz da distribuição Redis em /etc/redis/ utilizando o número da porta como nome:

sudo cp redis.conf /etc/redis/6379.conf

Crie um diretório dentro de /var/redis que funcionarão como os dados e diretório de trabalho para esta instância Redis:

sudo mkdir /var/redis/6379

Edite o arquivo de configuração:

Instalação do Redis como serviço em Windows

Link original: https://raw.githubusercontent.com/MSOpenTech/redis/2.8/Windows%20Service%20Documentation.md

Execute o seguinte comando:

redis-server.exe --service-install --service-name fluigcache redis.windows.conf

Configurando o Redis para uso com o Fluig:

Memória

Procure no arquivo de configuração, o parâmetro maxmemory e certifique-se de configurar para o tamanho máximo desejado, caso contrário, podem ocorrer problemas de falta de memória.

maxmemory 1g

Observação: se estiveres usando a versão 2.8 do redis em windows, configure também o parâmetro "maxheap"

Persistência

Para que o Redis não salve um snapshot da memória de tempos em tempos, procure as linhas iniciadas com a palavra "save" no arquivo de configuração:

exemplo do config padrão para windows:

save 900 1
save 300 10
save 60 10000

E altere para:

# save 900 1
# save 300 10
# save 60 10000
save ""

Arquivo PID

Pra que o Redis grave um arquivo com o PID, sete o seguinte parâmetro:

daemonize yes

Configurando o Fluig para usar o Redis como cache:

Abra o arquivo standalone.xml e modifique a propriedade cacheServerAddress para "redis:<ip>".

<simple name="java:global/wcm/cacheServerAddress" value="redis:127.0.0.1"/>

Observação: Essa configuração pode ser setada durante a execução do instalador do Fluig.

Configurando o Redis com Cluster e Fail-Over

O Redis usa o modelo Master-Slave com um processo monitor chamado Sentinel

Os passos indicados anteriormente continuam valendo para cada nó do cluster Redis.

Master

O nó Master não necessita de nenhuma configuração adicional além das configurações dos passos anteriores.

Slaves

Adicione a seguinte configuração em cada nó Slave

slaveof <masterIP> <masterPort>

slaveof 127.0.0.1 6379

Sentinel

O Sentinel oferece um modelo simples e automático de alta disponibilidade (HA) para Redis usando a estratégia de eleição caso o Master venha a falhar. Inicialmente, tem-se uma replicação do Master para N números de Slaves.

Um processo Sentinel deve ser adicionado em cada um dos servidores que terão uma ou mais instancias dos Redis para monitorar a execução dos processos e iniciar uma eleição para promover um Slave para Master caso o Master falhe.

Para isso:

Exemplo:

daemonize yes
sentinel monitor fluigcache 127.0.0.1 6379 1
sentinel down-after-milliseconds fluigcache 10000

Observação: Durante uma execução em cluster, o Sentinel modifica os arquivos de configuração, portanto eles devem ter a permissão de escrita.