2011-12-20 24 views
12

Sto cercando di fare qualche ricerca per trovare l'opzione migliore per la gestione delle sessioni in un ambiente multi-server e mi chiedevo cosa hanno scoperto le persone e perché. Pro e contro.Cosa usare per la gestione delle sessioni?

RDBMS - Più lento. Meglio usato per altri dati.

Memcached - Non è possibile abbattere un server memcached senza perdere le sessioni

Redis - risolve il problema di memcached, ma per quanto riguarda la facilità di scalabilità? Tolleranza di errore?

Cassandra: presenta una buona tolleranza di errore. Pro e contro?

MongoDB, Altri?

Grazie!

risposta

7

Personalmente, uso Cassandra per mantenere i dati della sessione php. Lo memorizza in una singola colonna su una singola riga con session_id: {session_data_as_json} e imposto il TTL sulla colonna in modo che esegua la pulizia automatica. Funziona a meraviglia.

Sono andato con Cassandra come ha tutti gli altri dati utente già ... Per la memorizzazione nella cache, ho permesso a APC su tutti i server web di front end e non ho avuto problemi ...

E 'questo l'approccio migliore? Non sono sicuro. era adatto allo scopo per l'ambiente, le tecnologie e le regole aziendali che dovevo soddisfare. ...

Nota a margine, ho iniziato a lavorare su un php nativo -> handler sessione cassandra: https://github.com/sdolgy/php-cassandra-sessions - questo dimostra come il TTL del sono impostati con PHPCassa e Cassandra

5

Redis - Risolve il problema della memcached, ma per quanto riguarda la facilità di scalabilità ? Tolleranza di errore?

Redis supporta replication e imminente cluster dovrebbe anche supportare sharding dei dati attraverso più nodi.

0

Un po 'tardi, ma forse qualcuno è interessato a un seguito. Usiamo Cassandra come nostro negozio di sessione e accediamo tramite la sessione di primavera (con un addon di cassandra di primavera-sessione-cresciuto in casa). Gli oggetti nella sessione vengono scansionati/non abbinati tramite Kryo (https://github.com/EsotericSoftware/kryo).

Questa impostazione ci dà un get sessione tra 1 e 2 ms e un salvataggio sotto 1ms:

enter image description here

enter image description here

Ma a seconda del carico anello ci sono alcuni valori anomali nel tempo di risposta :

enter image description here

Problemi correlati