2011-12-20 10 views
12

Estoy tratando de hacer una investigación para encontrar la mejor opción para la administración de sesiones en un entorno de servidores múltiples y me preguntaba qué personas han encontrado exitosas y por qué. Pros y contras.¿Qué usar para la gestión de sesión?

RDBMS - Más lento. Mejor utilizado para otros datos.

Memcached - No se puede acabar con un servidor memcached sin perder sesiones

Redis - Corrige el problema de memcached, pero ¿qué pasa con facilidad de escalabilidad? ¿Tolerancia a fallos?

Cassandra - Tiene buena tolerancia a fallas. ¿Pros y contras?

MongoDB, Otros?

Gracias!

Respuesta

7

Personalmente, uso Cassandra para persistir los datos de la sesión de php. Lo almacena en una sola columna en una sola fila con session_id: {session_data_as_json} y configuro el TTL en la columna para que haga la limpieza de basura automáticamente. Funciona un placer

Fui con Cassandra, ya que tiene todos los otros datos de usuario ya ... Para el almacenamiento en caché, lo permitido APC en todos los servidores web front-end y no he tenido ningún problema ...

Es este el mejor enfoque? No es seguro. era adecuado para el entorno, las tecnologías y las reglas comerciales que debía cumplir. ...

Nota al margen, que comenzó a trabajar en una nativa de PHP -> gestor de sesiones Cassandra: https://github.com/sdolgy/php-cassandra-sessions - esto demuestra cómo el TTL son establecidos con PHPCassa y Cassandra

5

Redis - Corrige el problema de la memcached, pero ¿qué pasa con la facilidad de escalabilidad ? ¿Tolerancia a fallos?

Redis apoya replication y próximo cluster también deberían apoyar sharding de datos a través de múltiples nodos.

0

Un poco tarde, pero tal vez alguien esté interesado en un seguimiento. Estamos usando Cassandra como nuestra tienda de sesiones y accedemos a ella a través de la sesión de primavera (con un complemento de primavera-sesión-cassandra de cosecha propia). Los objetos de la sesión se clasifican/desasignan a través de Kryo (https://github.com/EsotericSoftware/kryo).

Esta configuración nos da un encuentro sesión entre 1 y 2 ms y para el almacenamiento debajo de 1 ms:

enter image description here

enter image description here

Pero dependiendo de la carga del anillo hay algunos valores atípicos en el tiempo de respuesta :

enter image description here

Cuestiones relacionadas