Sa-Token 支持 Redis、Memcached 等专业的缓存中间件中, 做到重启数据不丢失,而且保证分布式环境下多节点的会话一致性
一、引入Maven依赖
<!-- springboot集成redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
以下两种选择一种即可:
- 1、jdk默认序列化方式
<!-- Sa-Token 整合 Redis (使用jdk默认序列化方式) --> <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-dao-redis</artifactId> <version>1.24.0</version> </dependency>
优点:兼容性好
缺点:Session序列化后基本不可读,对开发者来讲等同于乱码
- 2、jackson序列化方式
<!-- Sa-Token整合redis (使用jackson序列化方式) --> <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-dao-redis-jackson</artifactId> <version>1.22.0</version> </dependency>
优点:Session序列化后可读性强,可灵活手动修改
缺点:兼容性稍差
我选用的是 jackson 序列化方式
无论使用哪种序列化方式,你都必须为项目提供一个Redis实例化方案,例如:
<!-- 提供Redis连接池 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
二、Redis 配置信息
# Redis配置 redis: host: ${server.host} port: 6379 password: database: 0 jedis: pool: # 连接池最大连接数(使用负值表示没有限制) max-active: 50 # 连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: 3000 # 连接池中的最大空闲连接数 max-idle: 20 # 连接池中的最小空闲连接数 min-idle: 5 # 连接超时时间(毫秒) timeout: 5000
集成 Redis 后,Sa-Token 的相关数据就会自动保存到 Redis 中,例如:StpUtil.getTokenSession().set(); 方法