日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 万象百科 >内容正文

万象百科

SpringBoot整合SpringSeesion实现Redis缓存

發(fā)布時(shí)間:2023/11/23 万象百科 29 博士
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot整合SpringSeesion实现Redis缓存 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
使用Spring Boot開發(fā)項(xiàng)目時(shí)我們經(jīng)常需要存儲(chǔ)Session,因?yàn)镾ession中會(huì)存一些用戶信息或者登錄信息。傳統(tǒng)的web服務(wù)是將session存儲(chǔ)在內(nèi)存中的,一旦服務(wù)掛了,session也就消失了,這時(shí)候我們就需要將session存儲(chǔ)起來,而Redis就是用來緩存seesion的一種非關(guān)系型數(shù)據(jù)庫,我們可以通過配置或者注解的方式將Spring Boot和Redis整合。而在分布式系統(tǒng)中又會(huì)涉及到session共享的問題,多個(gè)服務(wù)同時(shí)部署時(shí)session需要共享,Spring Session可以幫助我們實(shí)現(xiàn)這一功能。將Spring Session集成到Spring Boot框架中并使用Redis進(jìn)行緩存是目前非常流行的解決方案,接下來就跟著一起學(xué)習(xí)吧。 工具/材料 IntelliJ IDEA 操作方法 01 首先我們創(chuàng)建一個(gè)Spring Boot 2.x的項(xiàng)目,在application.properties配置文件中添加Redis的配置,Spring和Redis的整合可以參考其他的文章,此處不再詳解。我們?cè)O(shè)置服務(wù)端口server.port為8080端口用于啟動(dòng)第一個(gè)服務(wù)。 02 接下來我們需要在pom文件中添加spring-boot-starter-data-redis和spring-session-data-redis這兩個(gè)依賴,spring-boot-starter-data-redis用于整合Spring Boot和Redis,spring-session-data-redis集成了spring-session和spring-data-redis,提供了session與redis的整合方案。 03 接下來我們創(chuàng)建一個(gè)配置類RedisSessionConfig,這個(gè)類使用@Configuration注解表明這是一個(gè)配置類。在這個(gè)類上我們同時(shí)添加注解@EnableRedisHttpSession,表示開啟Redis的Session管理。如果需要設(shè)置失效時(shí)間可以使用@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)表示一小時(shí)后失效。若同時(shí)需要設(shè)置Redis的命名空間則使用@EnableRedisHttpSession(maxInactiveIntervalInSeconds=3600, redisNamespace="{spring.session.redis.namespace}") ,其中{spring.session.redis.namespace}表示從配置文件中讀取這個(gè)命名空間。 04 配置完成后我們寫一個(gè)測(cè)試類SessionController,在這個(gè)類中我們寫兩個(gè)方法,一個(gè)方法用于往session中存數(shù)據(jù),一個(gè)用于從session中取數(shù)據(jù),代碼如下圖所示,我們存取請(qǐng)求的url。啟動(dòng)類非常簡單,一般都是通用的,我們創(chuàng)建一個(gè)名為SpringbootApplication的啟動(dòng)類,使用main方法啟動(dòng)。 05 接下來我們使用Postman分別請(qǐng)求上面兩個(gè)接口,先請(qǐng)求存數(shù)據(jù)接口,再請(qǐng)求取數(shù)據(jù)接口,結(jié)果如下圖所示,我們可以看到數(shù)據(jù)已從redis中取出。另外需要注意sessionId的值,這是session共享的關(guān)鍵。 06 為了驗(yàn)證兩個(gè)服務(wù)是否共享了session,我們修改項(xiàng)目的配置文件,將服務(wù)端口server.port改為8090,然后再啟動(dòng)服務(wù)。此時(shí)我們不必在請(qǐng)求存數(shù)據(jù)的接口,只需要修改請(qǐng)求端口號(hào)再一次請(qǐng)求取數(shù)據(jù)的接口即可。由下圖可以看到兩次請(qǐng)求的sessionId值相同,實(shí)現(xiàn)了session的共享。 07 以上我們完成了SpringBoot整合SpringSeesion實(shí)現(xiàn)Redis緩存的功能,在此我們還要推薦一個(gè)Redis的可視化工具RedisDesktopManager,我們可以配置Redis數(shù)據(jù)庫的連接,然后便可以非常直觀地查看到存儲(chǔ)到Redis中的session了,如下圖所示,session的命名空間是share,正是從配置文件中讀取到的。 特別提示 如果Redis服務(wù)器是很多項(xiàng)目共用的,非常建議配置命名空間,否則同時(shí)打開多個(gè)項(xiàng)目的瀏覽器頁面可能會(huì)導(dǎo)致session錯(cuò)亂的現(xiàn)象。

總結(jié)

以上是生活随笔為你收集整理的SpringBoot整合SpringSeesion实现Redis缓存的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。