Configuración de Redis para el almacenamiento de la sesión de PHP en Linux

Configuración de Redis para el almacenamiento de la sesión de PHP en Linux

Redis es un almacén de estructura de datos en memoria, ampliamente utilizado como base de datos, caché y corredor de mensajes. Es particularmente útil para administrar las sesiones de PHP debido a su alto rendimiento, baja latencia y capacidades de persistencia de datos. En este artículo, lo guiaremos a través de todo el proceso de instalación, configuración y uso de Redis como almacén de sesión para aplicaciones PHP.

Instalación de Redis en su sistema

Primero, debe instalar Redis en su distribución de Linux. El proceso de instalación varía según el administrador de paquetes utilizado por su distribución. Aquí hay unos ejemplos:

  • Para sistemas basados ​​en Debian (E.gramo., Ubuntu), use el Administrador de paquetes APT:
    Actualización de sudo apto  Sudo Apt Install Redis-Server  
  • Para sistemas basados ​​en Rhel (E.gramo., Centos, Fedora), use el Administrador de paquetes YUM:
    sudo yum instalación redis  
  • Para Arch Linux, use el Pacman Package Manager:
    Sudo Pacman -S Redis  

Después de la instalación, habilite e inicie el servicio Redis:

sudo systemctl habilita redis  sudo systemctl iniciar redis  

Instalación de la extensión PHP Redis

Para usar Redis para las sesiones de PHP, debe instalar la extensión PHP Redis. El proceso de instalación depende de su versión de PHP y administrador de paquetes.

  • Para sistemas basados ​​en Debian (E.gramo., Ubuntu), use el Administrador de paquetes APT:
    sudo apt install php-redis  
  • Para sistemas basados ​​en Rhel (E.gramo., Centos, Fedora), use el Administrador de paquetes YUM:
    sudo yum instalar Php-Pecl-Redis  
  • Para Arch Linux, use el Pacman Package Manager:

    sudo Pacman -S PHP -Redis  

Después de la instalación, reinicie su servidor web para cargar la extensión PHP Redis:

sudo systemCTL reiniciar apache2 # para apache sudo systemctl reiniciar nginx # para nginx
12SUDO SystemCTL reiniciar apache2 # para apachesudo systemctl reiniciar nginx # para nginx

Configuración de PHP para usar Redis para la administración de sesiones

Para configurar PHP para usar Redis para la administración de sesiones, edite su 'PHP.ini ' archivo (generalmente encontrado en '/etc/php/versión/fpm/' o '/etc/php/versión/apache2/' para sistemas basados ​​en Debian, o '/etc/php.ini ' para sistemas basados ​​en Rhel). Agregar o modificar las siguientes líneas:

sesión.save_handler = sesión Redis.save_path = "tcp: // localhost: 6379"
12sesión.save_handler = redission.save_path = "tcp: // localhost: 6379"

Reemplace localhost con la dirección IP de su servidor Redis si no se ejecuta en la misma máquina que su aplicación PHP. Reemplazar '6379' con el número de puerto apropiado si su servidor Redis se ejecuta en un puerto diferente.

Después de editar el PHP.Archivo INI, reinicie su servidor web para aplicar los cambios:

SUDO SYSTEMCTL Reiniciar Apache2 # para Apache sudo SystemCTL reiniciar nginx # para nginx sudo systemctl reiniciar php-fpm # para php-fpm (si corresponde)
123SUDO SYSTEMCTL Reiniciar Apache2 # para Apachesudo SystemCTL reiniciar nginx # para nginxsudo systemctl reiniciar php-fpm # para php-fpm (si corresponde)

Prueba de sesiones de PHP con alimentación de redis

Para probar si su aplicación PHP está utilizando Redis para la administración de sesión, cree un script PHP simple con el siguiente contenido:

12345678910

Guarde este script como 'session_test.php ' y subirlo a su servidor web. Acceda al script en su navegador web. El contador debe incrementar en cada página actualizar, confirmando que las sesiones de PHP se están almacenando en Redis.

Asegurar y optimizar sus sesiones de PHP con redis redis

Para los entornos de producción, es esencial asegurar y optimizar sus sesiones de PHP con redis para garantizar el alto rendimiento y la integridad de los datos. Aquí hay algunas recomendaciones:

  • Configurar la autenticación de contraseña de Redis: Edite su archivo de configuración de Redis (generalmente encontrado en '/etc/Redis/Redis.conflicto) y configure el 'Requastepass' Directiva a una contraseña segura:
    RequastEpass Your_Seecure_Password  

    Entonces, actualice su 'PHP.ini ' archivo para incluir la contraseña en el 'sesión.save_path ':

    sesión.save_path = "tcp: // localhost: 6379?auth = your_secure_password "
    1sesión.save_path = "tcp: // localhost: 6379?auth = your_secure_password "

  • Reinicie el servicio Redis y su servidor web para aplicar los cambios.

  • Habilitar la persistencia de los datos de Redis: Por defecto, Redis almacena datos solo en la memoria. Para persistir los datos de la sesión en el disco, habilite las instantáneas de RDB o el registro de AOF en su archivo de configuración de Redis. Por ejemplo, para habilitar las instantáneas de RDB, la falta o agregar la siguiente línea en '/etc/Redis/Redis.conflicto: ahorrar 900 1
    1ahorrar 900 1

    Esta configuración creará una instantánea de los datos de Redis cada 15 minutos si se ha modificado al menos una clave.

  • Optimizar la configuración de Redis: Dependiendo de los recursos de su servidor y los requisitos de su aplicación, es posible que deba optimizar la configuración de Redis para lograr el mejor rendimiento. Algunas opciones incluyen ajustar el 'MaxMemory' directiva, ajustando el 'MaxMemory-Policy', y ajustar el valor del tiempo de espera.
  • Monitorear el rendimiento de Redis: Monitoree regularmente el rendimiento de su servidor Redis utilizando herramientas como 'Redis-Cli', 'Redis-Stat', o 'Redis_Exporter' para identificar posibles cuellos de botella o problemas.

Conclusión

Este tutorial completo le ha mostrado cómo instalar, configurar y usar Redis como almacén de sesión para aplicaciones PHP. Al aprovechar Redis para la gestión de sesiones de PHP, puede mejorar significativamente el rendimiento y la escalabilidad de sus aplicaciones web. Asegúrese de seguir las mejores prácticas para asegurar y optimizar sus sesiones de PHP con redis para garantizar la mejor experiencia del usuario posible y mantener la integridad de sus datos de sesión.