【快學springboot】11.整合redis實現session共享


前言

這里都是基於前面的項目基礎上的。springboot整合redis非常的方便,這也是springboot的宗旨,簡化配置。這篇文章就教大家如何使用springboot整合redis來實現session共享。

引入依賴

<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中配置redis

# Redis服務器地址

spring.redis.host=localhost

# Redis服務器連接端口

spring.redis.port=6379

# Redis服務器連接密碼(默認為空)

spring.redis.password=

因為我本地redis沒有設置密碼,所以密碼這里留空。這個配置項可以去掉,但是我留在這是是想告訴大家可以在這里配置redis密碼

實現session共享

其實springboot實現session共享非常的方便,只需要一個@EnableRedisHttpSession注解即可。把該注解加在springboot啟動類的上面。

【快學springboot】11.整合redis實現session共享

到這里,已經實現redis存儲session的功能了。下面通過一個簡單例子測試下session是否存儲在redis中了。

新建一個SessionController.java,並且寫一個設置session的方法,如下:

【快學springboot】11.整合redis實現session共享

啟動項目,通過postman調用,如下:

【快學springboot】11.整合redis實現session共享

通過redis可視化工具,查看redis中是否存在該屬性:

【快學springboot】11.整合redis實現session共享

通過查看,happyjava已經存在redis中了。

使用nginx測試

通過上面的例子,已經證明了session被redis存儲了,下面,我們通過把應用啟動在兩個端口,使用nginx轉發,測試session是否真的共享了。

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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM