首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot 集成 spring-session-data-redis 搞定集群 session 共享

1. 首先创建一个 springboot 的 web 项目, 然后引入以下依赖

代码语言:javascript
复制
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.session</groupId>
	<artifactId>spring-session-data-redis</artifactId>
</dependency>

2. 其次在 application.properties 中配置 redis

代码语言:javascript
复制
spring.session.store-type=redis

spring.redis.host=localhost
spring.redis.password=
spring.redis.port=6379
spring.redis.database=0

3. 在SpringBoot项目启动类上添加注解 @EnableRedisHttpSession

@EnableRedisHttpSession 注解有几个可配置的参数

maxInactiveIntervalInSeconds : session 失效时间 默认是1800秒

redisNamespace : redis中的key的命名空间, 默认是 spring:session

flushMode : session 更新redis的模式, 默认是 FlushMode.ON_SAVE , 指的是在response commit 的时候刷入redis, 还可以选择 FlushMode.IMMEDIATE

saveMode : session 存入redis的模式, 默认是ON_SET_ATTRIBUTE, 还可以选择ON_GET_ATTRIBUTE, ALWAYS

cleanupCron : 清理 session 的cron表达式, 默认是 0 * * * * * , 每分钟清理一次

4. 然后就可以运行项目, 进行测试了

代码语言:javascript
复制
@Controller
public class DemoController {

	@RequestMapping("/test")
	@ResponseBody
	public String test(HttpServletRequest request) {
		HttpSession session = request.getSession();
		session.setAttribute("test", "test");
		return "String";
	}
	
}

访问之后, 就可以在 redis 中查看是否有 session 了

举报
领券