Cache com Redis no Ubuntu e WordPress

Introdução ao Redis

Redis é um software open source (licenciado pelo BSD), para armazenamento de estrutura de dados na memória , usado como banco de dados, cache e message broker. Ele suporta estruturas de dados como strings , hashes , listas , conjuntos , conjuntos classificados com consultas de intervalo, bitmaps , hiperloglogs e índices geoespaciais com consultas radius. O Redis tem replicação integrada , script Lua , remoção de LRU , transações e diferentes níveis de persistência em disco , e fornece alta disponibilidade via Redis Sentinel.e particionamento automático com o Redis Cluster .

Você pode executar operações atômicas nesses tipos, como acrescentar a uma string ; incrementando o valor em um hash ; empurrando um elemento para uma lista ; conjunto de computação intersecção , união e diferença ; ou obter o membro com classificação mais alta em um conjunto classificado .

Para alcançar seu excelente desempenho, o Redis trabalha com um conjunto de dados na memória. Dependendo do seu caso de uso, você pode persistir despejando o conjunto de dados no disco de vez em quando ou anexando cada comando a um log . A persistência pode ser opcionalmente desativada, se você precisar apenas de um cache em memória rico em recursos e em rede.

O Redis também suporta replicação assíncrona master-slave trivial para a configuração , com primeira sincronização não bloqueante muito rápida, reconexão automática com “ressincronização” parcial em divisão de rede.

Outras características incluem:

Transações

Pub / Sub

Lua scripting

Chaves com tempo de vida limitado

LRU despejo de chaves

Failover automático

Você pode usar o Redis da maioria das linguagens de programação .

O Redis é escrito em ANSI C e funciona na maioria dos sistemas POSIX, como Linux, * BSD, OS X, sem dependências externas. Linux e OS X são os dois sistemas operacionais nos quais o Redis é desenvolvido e mais testado, é recomendado o uso do Linux para implantação. O Redis pode funcionar em sistemas derivados do Solaris, como o SmartOS. Não há suporte oficial para o Windows, mas a Microsoft desenvolve e mantém uma porta Win-64 do Redis .

Instalando o Redis no Linux Ubuntu

Como recomendado pela própria equipe que desenvolve e mantém o Redis, o Linux é o sistema operacional ideal para implantação, sendo assim utilizaremos o Ubuntu como exemplo.

1 – execute a atualização do sistema operacional.

apt update && apt dist-upgrade

2 – instale o servidor Redis, neste exemplo com PHP

apt install redis-server php-redis

3 – abra o arquivo de configuração

           nano /etc/redis/redis.conf

4 – configure a memória máxima de execução, pode ser no final do arquivo.

           maxmemory 512mb

           maxmemory-policy allkeys-lru

5 – reinicie o servidor do Redis

systemctl restart redis-server

Pronto seu Redis está operando localmente.

É possível criar um servidor de cache e permitir que outros servidores o acessem, isso é indicado para grandes aplicações ou ambientes que o consumo de recursos de cache seja alto.

 

Habilitando o Redis no WordPress

Embora o WordPress possua muitos e excelentes plugins de cache que melhoram o seu desempenho, ainda há a deficiência de performance nos plugins de cache que geram arquivos estáticos, pois esses arquivos são gravados no disco, o que acaba gerando uma certa “demora” mesmo que quase imperceptível. Como o Redis gera o cache em memória e não em disco, o acesso às informações é bem mais rápido.

Como o WordPress é muito popular na web e atualmente as VPS’s vem ganhando espaço por ser gerenciáveis, ao contrário de hospedagens compartilhadas, então faremos a configuração baseada em um ambiente parecido, ou seja, faremos diretamente no SO e integraremos ao WordPress.

Se você seguiu os passos anteriores, onde é feita a instalação do Redis no Linux Ubuntu, então siga os próximos passos.

1 – edite o arquivo wp-config.php

nano /var/www/wp-config.php

2- adicione as linhas abaixo no final do arquivo

           define( ‘WP_CACHE’, true );

           define( ‘WP_CACHE_KEY_SALT’, ‘seudominio.com’ );

Pronto, agora você precisa instalar o plug-in do WordPress – Redis Object Cache para ativar o cache do objeto Redis. Após a instalação vá nas configurações do plugin e habilite-o.

Failover para Redis Server com o Redis Sentinel

Se você estiver usando um servidor com o Redis Server instalado, e as informações não podem ser perdidas caso haja queda (por ser armazenado na memória, no momento em que o servidor for desligado ou reiniciado, as informações serão perdidas), ou ainda, é um ambiente que exige alta disponibilidade de recursos, é sempre recomendado implementar o failover.

Um ambiente com failover, no momento em que um servidor para, o outro imediatamente assume e continua a execução, desta forma não há indisponibilidade de recursos, para garantir a alta disponibilidade do Redis, foi desenvolvido o Redis Sentinel.

O Redis Sentinel fornece alta disponibilidade para o Redis. Em termos práticos, isso significa que, ao usar o Sentinel, você pode criar uma implantação do Redis que resista, sem intervenção humana, a certos tipos de falhas.

O Redis Sentinel também fornece outras tarefas colaterais, como monitoramento, notificações e atua como um provedor de configuração para clientes.

Esta é a lista completa de recursos do Sentinel em um nível macroscópico (ou seja, a grande figura ):

  • Monitoramento . O Sentinel verifica constantemente se suas instâncias mestre e escrava estão funcionando conforme o esperado.
  • Notificação . O Sentinel pode notificar o administrador do sistema, outros programas de computador, por meio de uma API, de que algo está errado com uma das instâncias do Redis monitoradas.
  • Failover automático . Se um mestre não estiver funcionando como esperado, o Sentinel pode iniciar um processo de failover no qual um escravo é promovido a mestre, os outros escravos adicionais são reconfigurados para usar o novo mestre e os aplicativos que usam o servidor Redis são informados sobre o novo endereço a ser usado. conectando.
  • Provedor de configuração . O Sentinel atua como uma fonte de autoridade para a descoberta de serviço de clientes: os clientes se conectam aos Sentinels para solicitar o endereço do mestre Redis atual responsável por um determinado serviço. Se ocorrer um failover, os Sentinels reportarão o novo endereço.

Natureza distribuída do Sentinel

O Redis Sentinel é um sistema distribuído:

O próprio Sentinel foi projetado para ser executado em uma configuração onde há vários processos do Sentinel cooperando juntos. A vantagem de ter vários processos do Sentinel cooperando é a seguinte:

  1. A detecção de falhas é realizada quando vários Sentinels concordam sobre o fato de um determinado mestre não estar mais disponível. Isso diminui a probabilidade de falsos positivos.
  2. O Sentinel funciona mesmo que nem todos os processos do Sentinel estejam funcionando, tornando o sistema robusto contra falhas. Não há graça em ter um sistema de failover, que é um ponto único de falha, afinal.

A soma de sentinelas, instâncias Redis (mestres e escravos) e clientes conectados ao Sentinel e Redis, também é um sistema distribuído maior com propriedades específicas.

Para saber mais sobre o Redis Sentinel clique aqui.