Sto cercando di implementare sessioni per un server web che sto sviluppando nel mio tempo libero. Al momento disponeva di supporto per i cookie, quindi gli utenti potevano implementare la propria gestione delle sessioni, ma questo è qualcosa che dovrebbe essere gestito dal server web. Sono di fronte a due opzioni sicure:
- Archivialo in memoria e fa scadere la sessione se l'utente non effettua una richiesta per un certo periodo di tempo. Questo ha il vantaggio della velocità; accedere alla memoria è veloce. È anche più facile da implementare, ma questo non è un problema.
o
- Archiviarlo in un database di qualche tipo e scadere la sessione se il tempo last_access è superiore a un certo periodo di tempo. Questo ha il vantaggio della persistenza; un arresto del server, il riavvio, ecc. non avranno alcun impatto su questo. Sarebbe anche possibile utilizzare un database su un altro server per questo scopo, consentendo a più server di condividere sessioni (ad esempio per il bilanciamento del carico).
Sto cercando di decidere se mantenere le sessioni con un riavvio o uno spegnimento è abbastanza importante da sacrificare la velocità di archiviazione in memoria, o se dovrei semplicemente memorizzare le sessioni in cache e memorizzarle in un database di qualche tipo come "backup" ", per esempio in caso di arresto anomalo o riavvio, ripristinerei le sessioni (se non sono scadute) dal database. Modifica: questo è in un ambiente a thread singolo. Non è un'opzione per il multithread.
Dal punto di vista dell'utente del server web, che è più importante? Velocità o persistenza?