美文网首页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