


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Redis實現(xiàn)緩存功能總結(jié)集成Redis實現(xiàn)緩存功能。Redis這個NoSQL數(shù)據(jù)庫應(yīng)?最?泛的場景就是做緩存,分springboot已經(jīng)對redis的操作深度封裝,今天主要總結(jié)?下共享session和業(yè)務(wù)數(shù)據(jù)的緩存。先說共享session,分布式系統(tǒng)共享session主要有三種?式,?種是session復(fù)制,?種是IPhash,?種是存儲共享,session復(fù)制需要配置tomcat,很簡單,?上教程?把的;IPhash只需設(shè)置nginx,也不講了,只講存儲共享,原因是相?于前兩種?法,它實時共享,可靠性?,擴展性好。實現(xiàn)起來需要三步:<dependency><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#Redis服務(wù)器地址spring.redis.host=localhost#Redis服務(wù)器連接端?spring.redis.port=6379#Redis服務(wù)器連接密碼(默認(rèn)為空)spring.redis.password=3.引?springboot實現(xiàn)session共享?常的?便,只需要?個@EnableRedisHttpSession注解即可。把該注解加在springbootsession共享就實現(xiàn)了,你可以隨便寫個請求,從httprequest中操作session,此處就略了。再說說業(yè)務(wù)數(shù)據(jù)緩存,?Redis緩存業(yè)務(wù)數(shù)據(jù)也有兩種?法,?種是?RedisTemplate直接操作需要緩存的業(yè)務(wù)數(shù)據(jù),?@Autowired注?RedisTemplate來操作redis,好處是可控,?由度?,缺點是啰嗦,代碼量?;另?種是?注解操作,?般要先寫個配置類/**/**@authorhulonghairedis配置類*/@Configuration@EnableCachingpublicclassCacheConfigextendsCachingConfigurerSupport{@SuppressWarnings("rawtypes")@BeanpublicCacheManagercacheManager(RedisTemplateredisTemplate){RedisCacheManagerrcm=newRedisCacheManager(redisTemplate);//設(shè)置緩存過期時間(秒)rcm.setDefaultExpiration(600);returnrcm;}@BeanpublicRedisTemplate<String,String>redisTemplate(RedisConnectionFactoryfactory){StringRedisTemplatetemplate=newStringRedisTemplate(factory);Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class);ObjectMapperom=newObjectMapper();om.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY);om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);jackson2JsonRedisSerializer.setObjectMapper(om);template.setValueSerializer(jackson2JsonRedisSerializer);template.afterPropertiesSet();returntemplate;}}如果你只想使?默認(rèn)配置,可以把它打在啟動類上,不寫配置類,但是這樣?般?法滿?實際?法配置了緩存過期時間,還有很多其他配置可以根據(jù)你的實際業(yè)務(wù)進?增加。接下來就要在操作業(yè)務(wù)上通過增加注解來實現(xiàn)緩存了,注解常?的有三種:@Cacheable:?于查詢和新增可選屬性:cacheNames/value:key:緩存數(shù)據(jù)使?的key,可以?來指定。默認(rèn)即使??法參數(shù)的值@Cacheable(value="user",key="'users_'+#id")publicUserfindUser(Integerid){@Cacheable(value="user",key="'users_'+#id")publicUserfindUser(Integerid){Useruser=newUser();user.setUsername("hlhdidi");user.setPassword("123");user.setUid(id.longValue());System.out.println("log4j2壞啦?");("輸?user,?戶名:{},密碼:{}",user.getUsername(),user.getPassword());returnuser;}@CachePut:?于更新既調(diào)??法,?更新緩存數(shù)據(jù),可達到同步更新緩存;修改了數(shù)據(jù)庫的某個數(shù)據(jù),同時更新緩存運?時機:2、將?標(biāo)?法的結(jié)果緩存起來value:緩存名key:緩存的key其中#result表??法返回的結(jié)果(確保更新的key和查詢?致即可做到同時更新數(shù)據(jù)庫數(shù)據(jù)和緩存中的數(shù)據(jù))@CachePut(value="user",key="#result.id")publicUserupdateUser(Useruser){@CachePut(value="user",key="#result.id")publicUserupdateUser(Useruser){System.out.println("updateUser:"+user);userMapper.updateUser(user);returnuser;}@CacheEvict:?于刪除緩存清除:?的是為了刪除?個數(shù)據(jù)并刪掉緩存key可實現(xiàn)?的即同時做到刪除數(shù)據(jù)庫和緩存中的數(shù)據(jù))allEntries=true:指定清楚這個緩存中所有的數(shù)據(jù)beforeInvocation=false:緩存的清楚是否在?法之前執(zhí)?,默認(rèn)代表是在?法之后執(zhí)?@CacheEvict(value="user",key="#id")publicvoiddeleteUser(Integerid){@CacheEvict(value="user",key="#id")publicvoiddeleteUser(Integerid){S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高端住宅無償入住及維護保養(yǎng)合同
- 二零二五年度貸款購車專項基金管理委托協(xié)議
- 二零二五年度教育機構(gòu)入股分紅管理合同
- 二零二五年度勞動仲裁調(diào)解協(xié)議書范本:社會福利機構(gòu)勞動者權(quán)益維護協(xié)議
- 2025年度私人簡易用工合同(家庭清潔與綠化維護)
- 二零二五年度車輛掛靠運輸合同糾紛解決協(xié)議
- 成都設(shè)計咨詢集團有限公司2025年社會公開招聘(19人)筆試參考題庫附帶答案詳解
- 2025陜西中華郡文化旅游景區(qū)招聘(47人)筆試參考題庫附帶答案詳解
- 鐵路局業(yè)務(wù)知識培訓(xùn)課件
- 2025湖北鄂州華容區(qū)城市建設(shè)投資有限公司招聘綜合筆試參考題庫附帶答案詳解
- 給水排水管道工程質(zhì)量通病以及防治
- 偏癱臨床路徑流程
- 計算機視覺全套課件
- GB-T 9251-2022 氣瓶水壓試驗方法(高清版)
- 基于單片機的電子廣告牌設(shè)計畢業(yè)設(shè)計論文
- 中國聯(lián)通IMS接口規(guī)范 第三分冊:Sh接口 V1.0
- 環(huán)境化學(xué)物的毒性作用及其影響因素
- 判斷抽樣(課堂PPT)
- 簡明疼痛評估量表(BPI)
- 通用橫版企業(yè)報價單模板
- 中國移動B-BOSS系統(tǒng)總體結(jié)構(gòu)
評論
0/150
提交評論