Niektóre frameworki, analizując FileStore zapisują pliki sesyjne np. w taki oto sposób
1)
app/storage/sessions/39/39ebd687d09eee8ded5e0a068ff6f8ff1376da15.sess
app/storage/sessions/3a/3af89014f96216b57a47fb7c5f316cb74b3b9162.sess
app/storage/sessions/7b/7bf3bb4a4cc5a24e1af3ad642d48f06d77158671.sess
a w nich serializowane dane.
Natomiast w domyślnej natywnej sesji jest jakiś katalog tmp a w nim pliki
2)
sess_ivg4t5j1k5f86ftu3mv89l1f65
sess_05md2phru9d1vihl99ic7kae55
sess_6lp60ho8lvvv9psou17h3o4pe2
i też to samo, serializacja
Czyli w 1) jest to porozrzucane a właściwie to uporządkowane w tych 2 znakowych podkatalogach, tutaj nazwy plików to sha1 na bazie jakiegoś unique id sesji, może być to też md5 ale też nie tak że wszystkie pliki w jednym katalogu ale w sumie w 256 2-znakowych podkatalogach.
Ktoś brał pod uwagę:
1) jeśli tych plików jest i z kilka milionów
2) ustawienia odśmiecania (np. 1%, 2% itd...)
Co do bazy danych to weźmy taką tabelę:
CREATE TABLE `sessions` (
`session_id` VARCHAR( 24 ) NOT NULL,
`last_active` INT UNSIGNED NOT NULL,
`contents` TEXT NOT NULL,
PRIMARY KEY ( `session_id` ),
INDEX ( `last_active` )
) ENGINE = MYISAM ;
I zapis do contents danych przy użyciu jeszcze dodatkowo base64encode
I teraz tak:
Jak to się wszystko ma do
a) szybkości

niezawodności (bo ja mając stronę na jakimś bezpłatnym hostingu obserwowałem swego czasu wywalanie się sesji natywnej z p. 2), były często, czego już nie było jak tylko zmieniłem sposób składowania, nie wiem dlaczego
No i jeszcze weźmy pod uwagę składowanie:
1. MongoDB
2. SSDB
Czy 1. jest też często stosowane? SSDB jest chyba jakąś alternatywą dla Redisa, przynajmniej tak mi się wydaje. Jakie macie tutaj doświadczenia?