Sessões do PHP com Redis
Escrito por Diogo Bemfica em 20/02/2019
Hoje quero voltar a falar sobre o Redis, se você não sabe do que se trata o Redis eu tenho um artigo explicando o que é e os primeiros passos que você pode acessar clicando no link Começando com o Redis. Mas para resumir o Redis é um banco de dados não relacional armazenando os dados na memória, ele funciona basicamente com uma estrutura de chave valor. Muito bom para ser usado como cache e para controlar as suas sessões.
Nesse artigo vou mostrar como que com poucos passos podemos configurar o PHP para que ao invés de armazenar as suas sessões em arquivos no disco como ele faz por padrão, ele passe a armazenar as suas sessões dentro do Redis.
Porque usar o Redis
Usando o Redis nós podemos montar um arquitetura para sua aplicação a onde as sessões vão estar centralizadas em um lugar fora da própria aplicação, nós permitindo ter um controle maior e mais facilitado sobre elas.
Fazendo isso podemos escalar a nossa aplicação horizontalmente sem termos que nos preocupar com a sessão do usuário. Além disso fica muito mais fácil para que possamos fazer interoperabilidade entre linguagens e outras tecnologias, exemplo podemos fazer o NodeJs ou Python ter acesso ao usuário logado no sistema.
Instalando a extensão do Redis no seu PHP
Para que possamos fazer isso precisamos instalar uma extensão do PHP e isso é diferente dependendo do sistema operacional, vou mostrar esse processo usando o Linux e o Windows.
No Windows a melhor forma que eu achei de fazer a instalação é acessando a página da PECL do Redis. Aqui você encontra todas as versões da extensão, escolha a versão que preferir, não esqueça de baixar a versão em DLL e não em .TGZ. Depois é só escolher a versão para seu PHP.
Depois de baixar pegue o arquivo php_redis.dll colocar na sua pasta de extensões dentro a pasta do seu PHP e adicione essa linha no arquivo php.ini.
O processo no Ubuntu(que é a distribuição que eu estou acostumado) e derivados basta usar o seu gerenciador de pacotes.
sudo apt install php[verão só PHP]-redis
Credito que para outras distribuições Linux o processo seja semelhante só usando o gerenciador de pacotes de cada distribuição.
Para verificar se instalação foi feita corretamente basta rodar o comando php -m no seu terminal ou cmd caso esteja no Windows.
Rodando esse comando deve aparecer redis entre as extensões instaladas do seu PHP.
Ou se preferir pode visualizar isso na sua página do phpinfo.
Agora com a extensão instalada é bem simples. Basta acessar o arquivo php.ini encontre essas duas linhas.
E mude as duas para
session.save_path = "tcp://[ip do seu servidor]:[porta do seu servidor]?auth=senha_do_redis"
Por padrão a porta do redis é 6379 e o auth é opcional, isso é só se o seu redis possui senha para acesso.
Pronto agora toda vez que você estiver usando sessões no seu PHP vai saber que elas estão sendo salvas no seu servidor Redis.
Recentemente eu precisei fazer o PHP guardar as sessões no Redis, e surgiu a ideia de escrever esse artigo para documentar e compartilhar o processo, é um processo simples mas espero possa ajudar a que precisar.