Lagra HTTP-sessionsdata med Spring Session
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:
- Lägg till Spring Session Redis-biblioteket i ditt program.
- Konfigurera din application.yml-fil för att ansluta till din Azure Cache for Redis-instans.
- 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.