小编给大家分享一下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共享”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/960823/blog/3101316