【快学springboot】11.整合redis实现session共享

前言

**这里都是基于前面的项目基础上的。**springboot整合redis很是的方便,这也是springboot的宗旨,简化配置。这篇文章就教你们如何使用springboot整合redis来实现session共享。java

引入依赖

<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>
复制代码

配置redis

在application.properties中配置redisnginx

# Redis服务器地址

spring.redis.host=localhost

# Redis服务器链接端口

spring.redis.port=6379

# Redis服务器链接密码(默认为空)

spring.redis.password=
复制代码

由于我本地redis没有设置密码,因此密码这里留空。这个配置项能够去掉,可是我留在这是是想告诉你们能够在这里配置redis密码redis

实现session共享

其实springboot实现session共享很是的方便,只须要一个@EnableRedisHttpSession注解便可。把该注解加在springboot启动类的上面。spring

【快学springboot】11.整合redis实现session共享

到这里,已经实现redis存储session的功能了。下面经过一个简单例子测试下session是否存储在redis中了。springboot

新建一个SessionController.java,而且写一个设置session的方法,以下:bash

【快学springboot】11.整合redis实现session共享

启动项目,经过postman调用,以下:服务器

【快学springboot】11.整合redis实现session共享

经过redis可视化工具,查看redis中是否存在该属性:session

【快学springboot】11.整合redis实现session共享

经过查看,happyjava已经存在redis中了。app

使用nginx测试

经过上面的例子,已经证实了session被redis存储了,下面,咱们经过把应用启动在两个端口,使用nginx转发,测试session是否真的共享了。spring-boot

nginx.config配置

upstream session_server {

server 127.0.0.1:8080;

server 127.0.0.1:8081;

}

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://session_server;

proxy_set_header Host $host;

}

}
复制代码

这里把localhost这个请求,转发到了本地的8080和8081端口。

经过server.port指定程序的端口号

application.properties

server.port=8081
复制代码

写一个获取session的方法

SessionController.java

【快学springboot】11.整合redis实现session共享

这里经过Value注解获取了配置文件的server.port属性,而且经过getSession方法返回。

把程序启动在两个端口

IDEA设置能够屡次启动同个main方法。

【快学springboot】11.整合redis实现session共享

【快学springboot】11.整合redis实现session共享

把Allow paralled run勾上,便可屡次启动一个main方法了。咱们先把server.port设置为8080启动一次,而后改成8081再次启动。

经过postman屡次调用,能够得到结果以下:

【快学springboot】11.整合redis实现session共享

【快学springboot】11.整合redis实现session共享

能够看到,port分别出现了8080和8081,而且都可以正常获取到以前设置的happyjava这个值,说明session共享已经配置成功了。

总结

springboot配置session共享是很是方便的,只须要EnableRedisHttpSession注解便可。其实也可使用EnableMongoHttpSession注解用MongoDB来管理session。

相关文章
相关标签/搜索