小编给大家分享一下Springboot+redis怎么实现session共享,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
问题产生的原因?
当多个应用做集群的时候,如何实现应用之间session共享。
解决办法:
用一个容器保存 session,就能共享了。容器可以是数据库,缓存,文件等。当然这里性能最高的还是
redis了。
实例代码:
1、环境 jdk1.7+ springboot1.47 +redis 3.2.0
pom文件:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.7</java.version> </properties> <dependencies> <!-- spring boot web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> </dependencies>
yml文件:
#端口设置 server: port: 9999 #mybatis连接设置 spring: #redis配置 redis: host: 127.0.0.1 #password: 123456 port: 6379 pool: max-idle: 100 min-idle: 1 max-active: 1000 max-wait: -1
java代码:
import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("test/") public class LoginController { @RequestMapping("test01") @ResponseBody public Map<String, String> login(HttpServletRequest req){ Map<String, String> map = new HashMap<String, String>(); System.out.println("进入项目00111111111111111111111controler"); map.put("sessionId", req.getSession().getId()); return map; } }
第二个项目只需要改一下端口号即可。
首先我第二项目不开启 session共享 然后分别访问得到如下session Id
然后开启之后再来分别访问看看
这样就轻松实现session共享了。当然这个是借助springboot封装好的功能,如果用springmvc 或者其他框架,可以自己具体去实现,原理就是把这个session信息放到 一个公共的容器中,然后去取。
以上是“Springboot+redis怎么实现session共享”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。