一、OverView
Spring Session has the simple goal of free up session management from the limitations of the HTTP session stored in the server.
The solution makes it easy to share session data between services in the cloud without being tied to a single container (i.e. Tomcat). Additionally, it supports multiple sessions in the same browser and sending sessions in a header.
简单地来说:由架构导致了这种情况的发生
present

最早的架构就是很简单的单服务器状态,如果我们要保存用户状态,那么只需要一个 session 就行了
now

现在的架构都是集群式了:可以假设这样的情景,如果我在已经登录的状态,我首先要看视频 (这个服务假如在 A 服务器上),然后我又浏览图片 (这个服务假如在 B 服务器上),如果不共享 session 的话,那么我选择的服务不在一个服务器上就要重新登录了,这对用户也太不友好了。
解决方案

主流的解决方案:将 seesion 存到 redis 中,每次 server 要向 session 中写数据,或者要读 session 的数据时,都是对 redis 中的 session 进行操作。
二、环境搭建
不想 error ,先看依赖

pom.xml
1 | <!--redis--> |
application.properties
1 | # redis 基本配置 |
SessionController
1 |
|
三、测试

此时打开 redis 看一下:

可以看到此时,在不同的服务上可以通过共享 session
注:这边可以通过 nginx 进行负载均衡