Spring Boot +redis 实现Session共享
当我们的需要部署多套程序时,就会遇到session共享问题。这次我们主要spring boot + redis来解决session共享问题
添加 redis pom文件依赖
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--支持session共享 -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
配置 application.properties
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=123456
连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=-1
#连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=15000
#连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
添加RedisSessionConfig 配置类
//通过@EnableRedisHttpSession来开启spring session支持
//通过maxInactiveIntervalInSeconds 设置Session过期时间,单位:秒
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds =7200)
public class RedisSessionConfig {
}
注意的地方
以前 通过tomcat 配置session失效时间
server.servlet.session.timeout=5
但如果我们通过redis 设置了session失效时间,这个好像配置就会失效
测试
添加TestSessionController
@RestController
public class TestSessionController {
@RequestMapping(value = “/getsessionId”,method = RequestMethod.GET)
public String getsession(HttpServletRequest request){
HttpSession session = request.getSession();
Object obj=session.getAttribute(“sessionId”);
return obj.toString();
}
}
通过IDEA 同时启动两个端口
然后在application.properties中添加#端口 server.port=8081
启动第二个时修改为 server.port=8082
访问http://localhost:8081/addsessionId 添加sessionID
访问http://localhost:8081/getsessionId 获取sessionID
访问http://localhost:8082/getsessionId获取sessionID
我们可以发现这两个端口获取的sessionID是一模一样的,也就说明我们配置session共享配置好了!
开心一刻
1,一个程序员抽着烟,向空中吐着烟圈。他的女朋友对吸烟感到愤怒,并说:“难道你不能看到烟盒上的警告吗?吸烟有害健康!“程序员回答说:“我是一名程序员。我一般不担心警告,只担心错误。“
2,爱情是伟大的,但是我现在却深感怀疑,我曾经也对任何事情都无比痴情,就像我还一直坚持用jquery。但是现在,如果这个月我谈了一场恋爱并且选择了一款JavaScript框架。在下个月之前,总有一个会过时的。
3.经理问道:“方案下班之前能给我吗”?程序员回答:“放心吧,一定能”!第二天早上上班,经理愤怒地问道:“为什么还没把方案给我”?程序员回答:“可是我还没下班啊”。
4,其实程序员都是好男人,因为他们每天都在扪心自问:“天哪!我到底哪里错了啊。谁能告诉我啊”。。。
5,程序员撩妹方式是这样的,好不容易加了喜欢的MM的微信,发的第一句话:“echo hello word!”,对方回复:“??”。程序员再发第二句:“print_r()”,对方回复道:“你有病吧!”。程序员着急了,到底哪里出错了呢?然后发第三句:“var_dump()”,对方回复:“die()”。