Spring Boot +redis 实现Session共享

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 {
/**
* 添加session
* @param request
/
@RequestMapping(value = “/addsessionId”,method = RequestMethod.GET)
public String addsession(HttpServletRequest request){
HttpSession session = request.getSession();
session.setAttribute(“sessionId”,request.getSession().getId());
return request.getSession().getId();
}
/
*
* 获取session
* @param request
*/
@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()”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值