使用Spring Boot開發項目時我們經常需要存儲Session, 因為Session中會存一些用戶信息或者登錄信息 。 傳統的web服務是將session存儲在內存中的, 一旦服務掛了, session也就消失了, 這時候我們就需要將session存儲起來, 而Redis就是用來緩存seesion的一種非關系型數據庫, 我們可以通過配置或者注解的方式將Spring Boot和Redis整合 。 而在分布式系統中又會涉及到session共享的問題, 多個服務同時部署時session需要共享, Spring Session可以幫操作方式 01 起首我們建立一個Spring Boot 2.x的項目, 在application.properties設置裝備擺設文件中添加Redis的設置裝備擺設, Spring和Redis的整合可以參考小編其他的文章, 此處不再詳解 。 我們設置辦事端口server.port為8080端口用于啟動第一個辦事 。
02 接下來我們需要在pom文件中添加spring-boot-starter-data-redis和spring-session-data-redis這兩個依靠, spring-boot-starter-data-redis用于整合Spring Boot和Redis, spring-session-data-redis集當作了spring-session和spring-data-redis, 供給了session與redis的整合方案 。
03 【SpringBoot整合SpringSeesion實現Redis緩存】接下來我們建立一個設置裝備擺設類RedisSessionConfig, 這個類利用@Configuration注解表白這是一個設置裝備擺設類 。 在這個類上我們同時添加注解@EnableRedisHttpSession, 暗示開啟Redis的Session辦理 。 若是需要設置掉效時候可以利用@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)暗示一小時后掉效 。 若同時需要設置Redis的定名空間則利用@EnableRedisHttpSession(maxInactiveIntervalInSeconds=3600, redisNamespace="{spring.session.redis.namespace}") , 此中{spring.session.redis.namespace}暗示從設置裝備擺設文件中讀取這個定名空間 。
04 設置裝備擺設完當作后我們寫一個測試類SessionController, 在這個類中我們寫兩個方式, 一個方式用于往session中存數據, 一個用于從session中取數據, 代碼如下圖所示, 我們存取請求的url 。 啟動類很是簡單, 一般都是通用的, 我們建立一個名為SpringbootApplication的啟動類, 利用main方式啟動 。
05 接下來我們利用Postman別離請求上面兩個接口, 先請求存數據接口, 再請求取數據接口, 成果如下圖所示, 我們可以看到數據已從redis中掏出 。 別的需要注重sessionId的值, 這是session共享的關頭 。
06 為了驗證兩個辦事是否共享了session, 我們點竄項目標設置裝備擺設文件, 將辦事端口server.port改為8090, 然后再啟動辦事 。 此時我們不必在請求存數據的接口, 只需要點竄請求端標語再一次請求取數據的接口即可 。 由下圖可以看到兩次請求的sessionId值不異, 實現了session的共享 。
07 以上我們完當作了SpringBoot整合SpringSeesion實現Redis緩存的功能, 在此我們還要保舉一個Redis的可視化東西RedisDesktopManager, 我們可以設置裝備擺設Redis數據庫的毗連, 然后便可以很是直不雅地查看到存儲到Redis中的session了, 如下圖所示, session的定名空間是share, 恰是從設置裝備擺設文件中讀取到的 。
出格提醒 若是Redis辦事器是良多項目共用的, 很是建議設置裝備擺設定名空間, 不然同時打開多個項目標瀏覽器頁面可能會導致session錯亂的現象 。
以上內容就是SpringBoot整合SpringSeesion實現Redis緩存的內容啦, 希望對你有所幫助哦!
猜你喜歡
- Spring Boot如何整合Redis
- 創業者如何整合資源
- spring boot 整合 mybatis 最最最最簡單的方法
- 蘋果cmsV8和V10采集插件加播放器整合安裝設置
- spring boot整合freemarker模板引擎框架
- spring boot整合ehcache緩存框架
- 如何用手機把多段TS格式文件合并整合成一個MP4
- Creo6.0軟件怎么安裝
- SpringBoot整合Thymeleaf和FreeMarker模板引擎
- SpringBoot Security簡介
