--- title: Configuração do fluig cache com Redis source: https://tdn.totvs.com/pages/viewpage.action?pageId=205917413 path: \Plataforma Documentação técnica\Configuração\Configuração de Ambiente\Configuração do fluig cache com Redis.md --- Atenção! As informações desta página são válidas para as atualizações 1.6.2 e inferiores. **Mantenha sua plataforma atualizada!** À partir da atualização Snowflake (1.6.3), o controle e sincronização do cache do fluig é realizado através do banco de dados que, além de já ter uma conexão direta com o fluig em casos de instalações simples, também é compartilhado entre todos os nós (cluster) em casos de balanceamento de carga e alta disponibilidade. Caso possua uma atualização 1.5.5 ou inferior do fluig acesse: [Como configuro o fluig Cache com Redis?](https://tdn.totvs.com/pages/viewpage.action?pageId=224124188) # Índice - 1 [Sobre o Redis](#ConfiguraçãodofluigcachecomRedis-SobreoRedis) - 2 [Pré requisito](#ConfiguraçãodofluigcachecomRedis-Prérequisito) - 3 [Download do Redis](#ConfiguraçãodofluigcachecomRedis-DownloaddoRedis) - 4 [Instalação do Redis em Modo Single-Server](#ConfiguraçãodofluigcachecomRedis-InstalaçãodoRedisemModoSingle-Server) - 4.1 [Instalação do Redis como Serviço em Linux](#ConfiguraçãodofluigcachecomRedis-InstalaçãodoRediscomoServiçoemLinux) - 4.2 [Instalação do Redis como Serviço em Windows](#ConfiguraçãodofluigcachecomRedis-InstalaçãodoRediscomoServiçoemWindows) - 5 [Configurando o Redis para uso com o fluig](#ConfiguraçãodofluigcachecomRedis-ConfigurandooRedisparausocomofluig) - 5.1 [Memória](#ConfiguraçãodofluigcachecomRedis-Memória) - 5.2 [Persistência](#ConfiguraçãodofluigcachecomRedis-Persistência) - 5.3 [Arquivo PID](#ConfiguraçãodofluigcachecomRedis-ArquivoPID) - 6 [Configurando o fluig para usar o Redis como Cache](#ConfiguraçãodofluigcachecomRedis-ConfigurandoofluigparausaroRediscomoCache) - 7 [Configurando o Redis em Ambientes de Alta Disponibilidade com Tolerância a Falhas](#ConfiguraçãodofluigcachecomRedis-ConfigurandooRedisemAmbientesdeAltaDisponibilidadecomTolerânciaaFalhas) - 7.1 [Master](#ConfiguraçãodofluigcachecomRedis-Master) - 7.2 [Slaves](#ConfiguraçãodofluigcachecomRedis-Slaves) - 7.3 [Sentinel](#ConfiguraçãodofluigcachecomRedis-Sentinel) - 8 [Instalando o Sentinel como serviço no Windows](#ConfiguraçãodofluigcachecomRedis-InstalandooSentinelcomoserviçonoWindows) - 9 [Executar o Redis Sentinel em Servidor Linux](#ConfiguraçãodofluigcachecomRedis-ExecutaroRedisSentinelemServidorLinux) - 10 [Configurando o fluig para usar o Redis Cluster com Sentinel como cache](#ConfiguraçãodofluigcachecomRedis-ConfigurandoofluigparausaroRedisClustercomSentinelcomocache) # Sobre o Redis --- O Redis é um banco de dados NoSQL *open source* do modelo chave-valor em memória, que possui [licenciamento BSD](http://redis.io/topics/license) e pode ser utilizado como *cache* para o fluig. Ele possui funcionalidades extras como a possibilidade de ser utilizado em *cluster* com tolerância a falhas (*failover*). Site oficial: © Redis, *and the* Redis *logo are the trademarks of Salvatore Sanfilippo in the U.S. and other countries*. # Pré requisito --- - Ter o Redis instalado na máquina ou realizar o download do instalador nos links abaixo conforme o sistema operacional da máquina. # Download do Redis --- - O *download* do instalador do Redis para Linux pode ser realizado [neste link](http://redis.io/download). - O *download* do instalador do Redis para Windows pode ser realizado [neste link](https://github.com/MSOpenTech/redis/releases). # Instalação do Redis em Modo Single-Server --- O modo *single-server* significa que apenas um processo do Redis está no ar. Mesmo neste modo ele pode atender mais de um servidor fluig, porém será considerado um ponto de falha. ## Instalação do Redis como Serviço em Linux --- Verifique também a [documentação oficial](https://redis.io/topics/quickstart). A forma sugerida de instalar o Redis em Linux é compilá-lo a partir dos fontes, pois não há outras dependências além do 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 os executáveis *redis-server* e *redis-cli* 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 no 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 o REDISPORT de acordo com a porta que você está usando. Tanto o caminho do arquivo pid quanto o nome do arquivo de configuração dependem do número da porta. ``` sudo vi /etc/init.d/redis_6379 ``` Copie o arquivo de configuração modelo encontrado 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á como os dados e diretório de trabalho para esta instância Redis: ``` sudo mkdir /var/redis/6379 ``` Edite o arquivo de configuração: - Defina o pidfile para /var/run/redis\_6379.pid (modificar a porta se necessário). - Altere a porta em conformidade. No nosso exemplo não é necessário, pois a porta padrão já é 6379. - Defina o seu loglevel preferido. - Defina o arquivo de log para /var/log/redis\_6379.log - Definir o dir para /var/redis/6379 (passo muito importante!) ## Instalação do Redis como Serviço em Windows --- Verifique também a [documentação oficial](https://raw.githubusercontent.com/MSOpenTech/redis/3.0/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 estiver sendo utilizada a versão 2.8 do Redis com o Windows, configure também o parâmetro *maxheap*. ### Persistência Para que o Redis não salve um *snapshot* da memória periodicamente, 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-as para: ``` # save 900 1 # save 300 10 # save 60 10000 save "" ``` ### Arquivo PID Para que o Redis grave um arquivo com o PID, defina o seguinte parâmetro: ``` daemonize yes ``` # Configurando o fluig para usar o Redis como Cache --- A configuração do servidor Redis no fluig pode ser realizada das seguintes formas: - Arquivo configuration.properties, localizado em [Instalação fluig]\repository\wcmdir\config. Deve ser alterada a propriedade cacheServerAddress para "redis:[endereço IP]:[porta]" e o serviço precisa ser reiniciado para que a mudança seja aplicada; - Alterar o [parâmetro](http://tdn.totvs.com/pages/viewpage.action?pageId=77299889) CACHE\_SERVER\_ADDRESS [via API](https://api.fluig.com/resource_ConfigurationServiceRest.html); ``` wcm/cacheServerAddress=redis:127.0.0.1 ``` - Configuração via wcmadmin, caso o fluig já esteja no ar, através do Painel de controle → aba WCM → Configurações do Sistema → aba Parâmetros da Plataforma. Observação Essa configuração também pode ser realizada durante a execução do instalador do fluig. # Configurando o Redis em Ambientes de Alta Disponibilidade com Tolerância a Falhas --- 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. ![](..\..\..\images\RedisSentinel.png) ### 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 (**redis.conf**) em cada nó Slave*:* ``` slaveof ``` **Exemplo:** ``` 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 um número indeterminado de Slaves. Um processo Sentinel deve ser adicionado em cada um dos servidores que terão uma ou mais instâncias do 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: - Crie um arquivo redis.sentinel.conf. - Defina a propriedade daemonize para *"yes"*. - Defina a propriedade *sentinel monitor* com o nome do *cluster* Redis, informe o IP e porta do Master e o quórum de sentinelas. O quórum é o número mínimo de sentinelas que avaliam que o Master falhou para iniciar uma eleição. É importante usar o valor correto, pois um número inadequado vai impedir a eleição do novo Master. Template: ``` daemonize yes sentinel monitor NOME_DO_CLUSTER IP_MASTER PORTA_MASTER QUORUM sentinel down-after-milliseconds NOME_DO_CLUSTER 10000 ``` **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 permissão de escrita. # Instalando o Sentinel como serviço no Windows --- O executável do Sentinel é o mesmo do servidor do Redis, exceto pelo parâmetro "--sentinel". ``` redis-server.exe --service-install --service-name redissentinel redis.sentinel.conf --sentinel ``` # Executar o Redis Sentinel em Servidor Linux --- A partir da versão 3 o redis-sentinel é instalado por padrão junto do Redis. Para executar o Sentinel: ``` redis-sentinel /etc/redis/sentinel.conf ``` Sendo que **/etc/redis/sentinel.conf** é o arquivo de configuração padrão. # Configurando o fluig para usar o Redis Cluster com Sentinel como cache --- Atenção! A configuração do Redis com o fluig foi depreciada a partir da versão 1.6.2 da plataforma. Caso possua uma atualização superior à essa acesse: [Configurações da plataforma](http://tdn.totvs.com/x/7gNbDw). Ou se possuir uma atualização inferior à essas acesse: [Como posso ajustar as configurações da plataforma nas releases 1.5.13 e inferiores?](http://tdn.totvs.com/x/JppbDQ) Abra o arquivo configuration.properties, localizado em [Instalação fluig]\repository\wcmdir\config e modifique a propriedade cacheServerAddress, ou [use a propriedade via API CACHE\_SERVER\_ADDRESS](http://tdn.totvs.com/pages/viewpage.action?pageId=224107046). O formato da configuração é "redisc:[nome\_cluster]:[IP\_Sentinel]:[Porta\_Sentinel],[IP\_Sentinel\_2]:[Porta\_Sentinel\_2], etc.". ``` wcm/cacheServerAddress=redisc:NOME_DO_CLUSTER:IP_SENTINEL:PORTAL_SENTINEL ``` **Exemplo:** ``` wcm/cacheServerAddress=redisc:fluigcache:127.0.0.1:26379 ``` Também é possível realizar esta configuração via wcmadmin, caso o fluig já esteja no ar, através do Painel de controle → aba WCM → Configurações do Sistema → aba [Parâmetros da Plataforma](http://tdn.totvs.com/x/vLnxF). Observação Essa configuração também pode ser realizada durante a execução do instalador do fluig.