Junior — Middle
Ako je implementovaná mechanika ukladania používateľských relácií vo vašom poslednom projekte?
sobes.tech AI
Odpoveď od AI
V mojom poslednom projekte je shranjevanje uporabniških sej bilo izvedeno s pomočjo strežnika aplikacij in Redis kot zunanjega shranjevalnika sej.
Mehanizem delovanja:
- Ob avtentikaciji uporabnika se ustvari edinstven identifikator sej (sessionId).
- Podatki sej (npr. ID uporabnika, čas zadnje aktivnosti) se serializirajo in shranijo v Redis z ključem sessionId.
- Spletna aplikacija pri vsakem zahtevku pridobi sessionId iz piškotka in pridobi podatke sej iz Redis.
- Za upravljanje časa trajanja sej se v Redis uporablja TTL (time-to-live), kar omogoča samodejno brisanje neaktivnih sej.
Ta pristop zagotavlja razširljivost (več aplikacijskih strežnikov lahko dostopa do istega shranjevalnika sej) in hitro delovanje zaradi predpomnilnika v pomnilniku.
Primer kode za shranjevanje sej v Redis (z uporabo Jedis):
Jedis jedis = new Jedis("localhost");
String sessionId = UUID.randomUUID().toString();
Map<String, String> sessionData = new HashMap<>();
sessionData.put("userId", "12345");
// Shranjevanje seje z TTL 30 minut
jedis.hmset(sessionId, sessionData);
jedis.expire(sessionId, 1800);