Sobes.tech
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);