Lagra HTTP-sessionsdata med Spring Session

Slutförd

I den här lektionen får du lära dig hur du använder Azure Cache for Redis för att lagra HTTP-sessionsdata via Spring Session.

HTTP-sessioner

HTTP-sessioner lagrar användardata, vanligtvis säkerhetsinformation, mellan begäranden. HTTP-sessioner kan också lagra programtillstånd eller cachelagrade användardata som används ofta. Eftersom HTTP-sessioner lagras på servern kan de uppvisa ett skalbarhetsproblem. Du måste replikera sessionerna när programmet skalar ut till fler noder.

HTTP-sessioner har varit tillgängliga i Java sedan början av servlets, och tekniker som JavaServer Faces (JSF) använder dem kraftigt. Skalning av HTTP-sessioner har alltid varit ett problem, och det finns mekanismer för sessionsreplikering på alla större Java-programservrar.

Ett problem är att mekanismerna för HTTP-sessionsreplikering inte är standardiserade, utan förlitar sig på API:er som är specifika för varje programserver. Den här konfigurationen kan orsaka portabilitetsproblem.

Vårsession

Spring Session är ett Spring-underprojekt som tillhandahåller en allmän lösning för att konfigurera HTTP-sessionsreplikering. Spring Session stöder Redis som ett av flera serverdelsalternativ. Spring Session replikerar alla sessionsdata i Redis, så när programmet skalar ut har varje nod åtkomst till användarsessionerna.

Spring Session-konfigurationen liknar den tidigare Spring Data-konfigurationen och illustrerar ett annat rekommenderat Redis-användningsscenario.

Använda Spring Session med Redis

En del av konfigurationen är densamma som för Spring Data Redis och du behöver bara göra det en gång för båda lösningarna. Precis som i Spring Data-konfigurationen använder du vanligtvis Spring Initializr- och utför följande huvuduppgifter:

  1. Lägg till Spring Session Redis-biblioteket i ditt program.
  2. Konfigurera din application.yml-fil för att ansluta till din Azure Cache for Redis-instans.
  3. Använd Javas HTTP-sessionsmekanism för att lagra och hämta data.

Gå vidare till nästa enhet för att implementera den här konfigurationen.