前提
本文基于spring-boot-2.1.x版本实现redis的session共享
一、pom依赖
<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>
二、通用参数配置
在yaml或者properties文件中配置以下内容:
#默认为none,启用redis
spring.session.store-type=redis
#单机模式
spring.redis.host=xx.xx.xx.xx
spring.redis.port=6379
#集群模式
#spring.redis.cluster.nodes=ip:7001,ip:7002,...
#启用密码
#spring.redis.password=password
#session的cookie名称,作为session共享时的标识
server.servlet.session.cookie.name=test
三、扩展配置
1、配置方式
在yaml或者properties文件中配置以下内容即可:
#redis命名空间,即redis内存储结构
spring.session.redis.namespace=xxx.xxx.xxx.test
#如果未设置该属性,则自动配置会返回到 server.servlet.session.timeout 的值,默认30分钟,这里使用Duration定义参数,PT1M代表1分钟,PT1H代表1小时,PT1D代表1天
spring.session.timeout=PT1H
#和spring.session.timeout必须设置其中之一
server.servlet.session.timeout=PT1H
2、注解方式
在启动类中加入以下配置
@EnableRedisHttpSession(redisNamespace = “xxx.xxx.xxx.test”,maxInactiveIntervalInSeconds=600)
EnableRedisHttpSession可以配置redis的命名空间和session存活时间,默认30分钟,如果不需要动态调整这些参数的,可以使用此注解实现session共享,较为快捷。
注意
选择配置方式就不要再用注解方式,@EnableRedisHttpSession优先级高于配置的方式,会导致配置不生效。