Cómo usar Redis para gestionar la sesión en Symfony

Aprende a usar Redis para almacenar la sesión del usuario y así poder correr tu aplicación de Symfony en múltiples servidores

Requisitos iniciales

1. Instalar Redis en Ubuntu

sudo apt updatesudo apt install redis-server
supervised systemd
sudo systemctl restart redis.service

Algunos “trucos” sencillos

sudo systemctl status redis
Output● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-06-27 18:48:52 UTC; 12s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 2421 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 2424 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Main PID: 2445 (redis-server)
Tasks: 4 (limit: 4704)
CGroup: /system.slice/redis-server.service
└─2445 /usr/bin/redis-server 127.0.0.1:6379
. . .
redis-cli
127.0.0.1:6379> ping
OutputPONG
127.0.0.1:6379> set test "Hola mundo"
127.0.0.1:6379> get testOutput"Hola mundo"

2. Instalar la extensión Redis para php

sudo apt-get install redis-tools php-redis
pecl install redis
sudo apt install php-dev
enable igbinary serializer support? [no] :enable lzf compression support? [no] :
You should add "extension=redis.so" to php.ini
nano /etc/php/7.2/fpm/php.ini
extension=redis.so
sudo service php7.2-fpm restart

Paso 3. Configurar Redis como gestor de sesiones en Symfony

Servicio RedisSessionHandler

# config/services_prod.yamlservices:  Redis:    class: Redis    calls:      - method: connect    arguments:      - '%env(REDIS_HOST)%'      - '%env(int:REDIS_PORT)%'
Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
arguments: - '@Redis'
REDIS_HOST=127.0.0.1REDIS_PORT=6379

Establecer Redis como gestor de sesiones

framework:  session:  handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler

Autenticar en Redis (actualización 6 de mayo)

¿Quieres recibir más artículos como este?

Entre paseo y paseo con Simba desarrollo en Symfony y React

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store