【快學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。

相關文章
相關標籤/搜索