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

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

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

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

<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

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. 然后就可以运行项目, 进行测试了

@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 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档