日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

SpringBoot整合SpringSeesion實現(xiàn)Redis緩存

使用Spring Boot開發(fā)項目時我們經(jīng)常需要存儲Session,因為Session中會存一些用戶信息或者登錄信息 。傳統(tǒng)的web服務是將session存儲在內(nèi)存中的,一旦服務掛了,session也就消失了,這時候我們就需要將session存儲起來,而Redis就是用來緩存seesion的一種非關(guān)系型數(shù)據(jù)庫,我們可以通過配置或者注解的方式將Spring Boot和Redis整合 。而在分布式系統(tǒng)中又會涉及到session共享的問題 , 多個服務同時部署時session需要共享,Spring Session可以幫助我們實現(xiàn)這一功能 。將Spring Session集成到Spring Boot框架中并使用Redis進行緩存是目前非常流行的解決方案 , 接下來就跟著小編一起學習吧 。

SpringBoot整合SpringSeesion實現(xiàn)Redis緩存


工具/材料IntelliJ IDEA
操作方法01、首先我們創(chuàng)建一個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的整合方案 。
【SpringBoot整合SpringSeesion實現(xiàn)Redis緩存】03、接下來我們創(chuàng)建一個配置類RedisSessionConfig , 這個類使用@Configuration注解表明這是一個配置類 。在這個類上我們同時添加注解@EnableRedisHttpSession,表示開啟Redis的Session管理 。如果需要設置失效時間可以使用@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)表示一小時后失效 。若同時需要設置Redis的命名空間則使用@EnableRedisHttpSession(maxInactiveIntervalInSeconds=3600, redisNamespace="{spring.session.redis.namespace}") , 其中{spring.session.redis.namespace}表示從配置文件中讀取這個命名空間 。
04、配置完成后我們寫一個測試類SessionController,在這個類中我們寫兩個方法 , 一個方法用于往session中存數(shù)據(jù),一個用于從session中取數(shù)據(jù),代碼如下圖所示,我們存取請求的url 。啟動類非常簡單,一般都是通用的,我們創(chuàng)建一個名為SpringbootApplication的啟動類,使用main方法啟動 。
05、接下來我們使用Postman分別請求上面兩個接口,先請求存數(shù)據(jù)接口,再請求取數(shù)據(jù)接口,結(jié)果如下圖所示,我們可以看到數(shù)據(jù)已從redis中取出 。另外需要注意sessionId的值,這是session共享的關(guān)鍵 。
06、為了驗證兩個服務是否共享了session,我們修改項目的配置文件 , 將服務端口server.port改為8090,然后再啟動服務 。此時我們不必在請求存數(shù)據(jù)的接口,只需要修改請求端口號再一次請求取數(shù)據(jù)的接口即可 。由下圖可以看到兩次請求的sessionId值相同,實現(xiàn)了session的共享 。
07、以上我們完成了SpringBoot整合SpringSeesion實現(xiàn)Redis緩存的功能,在此我們還要推薦一個Redis的可視化工具RedisDesktopManager,我們可以配置Redis數(shù)據(jù)庫的連接,然后便可以非常直觀地查看到存儲到Redis中的session了,如下圖所示,session的命名空間是share,正是從配置文件中讀取到的 。
特別提示如果Redis服務器是很多項目共用的,非常建議配置命名空間,否則同時打開多個項目的瀏覽器頁面可能會導致session錯亂的現(xiàn)象 。

    推薦閱讀