将会话数据存储在一些专业的缓存中间件上(比如 Redis), 做到重启数据不丢失,而且保证分布式环境下多节点的会话一致性
用Sa-Token集成Redis还是很方便的,只要添加个依赖就行,没有其他代码
Sa-Token 整合 Redis(使用 jackson 序列化方式)
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-jackson</artifactId>
<version>1.35.0.RC</version>
</dependency>
优点:Session 序列化后可读性强,可灵活手动修改,缺点:兼容性稍差
Sa-Token 整合 Redis (使用 jdk 默认序列化方式)
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis</artifactId>
<version>1.35.0.RC</version>
</dependency>
优点:兼容性好,缺点:Session 序列化后基本不可读,对开发者来讲等同于乱码
上面依赖添加完之后就可以保证会话的一致性了,也可以解决跨域的问题
记得添加Redis相关的配置
Redis依赖
<!-- 提供Redis连接池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
Redis连接信息
spring:
redis:
database: 0
host: 127.0.0.1
port: 6379
password: 1234