美文网首页SpringBoot
spring boot +redis实现session共享

spring boot +redis实现session共享

作者: 5eac0cfdd510 | 来源:发表于2019-06-28 17:58 被阅读73次

一、环境搭建

1.1 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>

1.2 application.peoperties文件/yaml文件配置

spring.redis.host=redis主机地址
spring.redis.port=端口号
spring.redis.password=密码

1.3 开启spring session支持

方法一:
@Configuration  
@EnableRedisHttpSession  
public class RedisSessionConfig {  
} 
方法二:
在启动类中添加注解:@EnableRedisHttpSession   同时可以指定失效时间: maxInactiveIntervalInSeconds = 3600

总结:按照以上步骤 spring boot +redis实现session共享的环境已经搭建好了。下面看看测试效果:

二、测试

2.1 两个jar包项目测试

  • 1 输入命令启动不同端口的项目
     java -jar -Dserver.port=端口名 jar包名
    
  • 2 结果展示
    • 2.1 redis中设置sessionid


      1561711991607.jpg
    • 2.2 redis中取sessionid
      redis ger values.jpg
      由上可知,两个jar包打包启动后可以进行session共享
      码云地址:https://gitee.com/huangjian163/redis2.git

2.2 两个war项目在同一个tomcat下

  • 1 结果展示
    -1.1 redis中设置sessionid的值


    tomcatsetvalue.jpg

    -1.2 redis中获取sessionid的值


    tomcatgetValue.jpg
    由上可知。两个web项目在同一个tomcat中无法对session进行共享
  • 2 解决同一个tomcat下session无法共享的方案
    • 2.1 修改applicat/yaml配置文件
```
  server.servlet.context-path = tomcat的路径   (/redis)
  server.servlet.session.cookie.path = 统一cookie请求路径  (建议统一使用 /)

总结

经过我的验证后满足需求,暂时没有出现问题,也希望大家能看看有没有问题,有的话给我点好的建议!

相关文章

网友评论

    本文标题:spring boot +redis实现session共享

    本文链接:https://www.haomeiwen.com/subject/ybvdcctx.html