一. 概述
Spring的session的失效时间默认为30min,可以通过
server.servlet.session.timeout=30m
配置, 但是这种session都是单机有效的,对于分布式系统就不太友好了, 本Demo将简单集成Redis实现分布式session共享
二. SpringBootDemo
2.1 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 对象池,使用redis时必须引入 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
2.2 application.yml
server:
port: 8080
servlet:
context-path: /demo
# session超时时间 默认30分钟
session:
timeout: 30m
spring:
session:
store-type: redis
redis:
# 会话刷新模式
flush-mode: immediate
# 用于存储会话的键的命名空间
namespace: "spring:session"
redis:
host: localhost
port: 6379
# 连接超时时间(记得添加单位,Duration)
timeout: 10000ms
# Redis默认情况下有16个分片,这里配置具体使用的分片
# database: 0
lettuce:
pool:
# 连接池最大连接数(使用负值表示没有限制) 默认 8
max-active: 8
# 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
max-wait: -1ms
# 连接池中的最大空闲连接 默认 8
max-idle: 8
# 连接池中的最小空闲连接 默认 0
min-idle: 0
网友评论