首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SpringBoot 集成 spring-session-data-redis 搞定集群 session 共享

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

作者头像
北漂的我
发布2020-07-01 10:55:36
发布2020-07-01 10:55:36
4.3K0
举报
文章被收录于专栏:北漂的我北漂的我

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 了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档