usando algo como Redis para el almacenamiento de sesiones es una gran manera de obtener más rendimiento de servidores con equilibrio de carga.
Por ejemplo, en Amazon Web Services, los balanceadores de carga tienen lo que se denomina 'sesiones adhesivas'. Lo que esto significa es que cuando un usuario se conecta por primera vez a su aplicación web, p. cuando inicie sesión en él, el equilibrador de carga seleccionará uno de sus servidores de aplicaciones y este usuario continuará atendido desde este servidor hasta que salga de su aplicación. Esto se debe a que las sesiones utilizadas por PHP, por ejemplo, se almacenarán en el servidor de la aplicación que primero comiencen a usar.
Ahora, si utiliza Redis en un servidor separado, configure PHP en cada uno de sus servidores de aplicaciones para almacenar sus sesiones en Redis, puede desactivar estas 'sesiones adhesivas'. Esto significa que cualquiera de sus servidores puede acceder a las sesiones y, por lo tanto, el servidor puede ser servido desde un servidor diferente con cada solicitud a su aplicación. Esto finalmente hace un uso más eficiente de su configuración de equilibrio de carga.
Realmente no creo que deba preocuparse mucho por las sesiones a menos que obtenga MASIVAS cantidades de tráfico, PHP maneje las sesiones muy bien, y si almacena solo esa poca información, debería estar bien incluso con un montón de solicitudes, y sobre el rendimiento debería estar cerca, ya que el redis no es nativo de PHP. – gosukiwi
@gosukiwi gracias! ¿Qué quieres decir con masivo? como 10k usuarios a la vez, o como 1mil? Entiendo que depende de mi máquina, pero estoy tratando de ver si php podría tener algún límite superior (como si fuera a almacenar cada sesión como un archivo individual, haciéndolo sujeto al rendimiento del sistema de archivos OS). – tau
Bueno, me preocuparía el uso de memoria del servidor en ese caso, ya que está todo almacenado en RAM, con 10k usuarios, si cada usuario usa datos de sesiones de 1kb, consumiría 10,000kb o 10 ~ mb, lo que no es mucho, PHP es lo suficientemente inteligente como para usar una estructura de datos lo suficientemente buena como para contener y escribir y leer rápidamente esos valores, el problema es si los datos de la sesión son demasiado grandes o por alguna razón el servidor consume demasiados recursos leyendo los datos de la sesión, pero eso es normalmente si los datos son demasiado grandes. – gosukiwi