SpringBoot整合redis使用緩存注解詳解
1.啟動類標明@EnableCaching
@SpringBootApplication
@MapperScan("com.jx.luckyDraw.mapper")
@EnableCaching
public class LuckyDrawApplication {
public static void main(String[] args) {
SpringApplication.run(LuckyDrawApplication.class, args);
}
}
2.常用注解的種類
@Cacheable
@CachePut
@CacheEvict
2.1 作用
- @Cacheable:在方法執(zhí)行前判斷對應緩存是否存在,如果存在直接返回緩存結果,否者執(zhí)行方法將結果緩存,適用于查詢類。
- @CachePut:與@Cacheable不同的是@CachePut一定會執(zhí)行方法,并將方法的返回值更新到緩存,適用于更新,插入。
- @CacheEvict:清除緩存。
2.2 例子
@Cacheable
@Cacheable(cacheNames = "drawDetails", key = "#userId + ':' + #batchId", unless = "#result ==null")
public DrawDetailPO getDrawDetails(String userId, Long batchId) {
當getDrawDetails方法的返回值不為null時,將方法的執(zhí)行結果按照#userId + ‘:’ + #batchId 的方式緩存到redis中。
redis中鍵名為:
drawDetails::81466011bd2a7cf40502a08827038390:1490935513660657664
@CacheEvict
@CacheEvict(value = {"drawBatch", "drawDetails"}, allEntries = true, condition = "#result > 0")
@Override
public int newDrawBatchInfo(Integer batchCount) {
當newDrawBatchInfo方法的返回值大于0時,將命名空間為drawBatch" 或者drawDetails的鍵全部刪除。
allEntries 默認為false,當有多個鍵時必須配置true才能刪除。
在這種沒指定key,使用默認keyGenerator 時,必須使用allEntries =true才能刪除
@Cacheable(cacheNames = "employeeSelectList", unless = "#result ==null")
public List<HrmEmployeeSelectVO> querySelectList(HrmEmployeeSelectVO employeeSelectVO) {
return employeeMapper.querySelectList(employeeSelectVO);
}
@CacheEvict(value = "employeeSelectList",allEntries = true,condition = "#result = true ")
beforeInvocation 屬性:是否在方法執(zhí)行前刪除,默認為false。
到此這篇關于SpringBoot整合redis使用緩存注解詳解的文章就介紹到這了,更多相關SpringBoot整合redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- SpringBoot整合Redis實現(xiàn)token緩存
- SpringBoot結合Redis實現(xiàn)緩存管理功能
- SpringBoot+MyBatis+Redis實現(xiàn)分布式緩存
- springboot使用redis注解做緩存的基本操作方式
- SpringBoot中Redis的緩存更新策略詳解
- springboot整合ehcache和redis實現(xiàn)多級緩存實戰(zhàn)案例
- SpringBoot結合Redis實現(xiàn)緩存
- SpringBoot使用Redis實現(xiàn)分布式緩存
- SpringBoot中的Redis?緩存問題及操作方法
- SpringBoot3.0集成Redis緩存的實現(xiàn)示例
相關文章
Java的Finalizer引發(fā)的內(nèi)存溢出問題及解決
本文介紹了Java中的Finalizer機制,解釋了當類實現(xiàn)finalize()方法時,JVM的行為和潛在的風險,通過一個示例程序,展示了實現(xiàn)finalize()方法會導致大量對象存活,最終引發(fā)OutOfMemoryError,文章分析了GC日志,解釋了Finalizer線程和主線程之間的競爭2025-03-03
使用Spring AntPathMatcher的doMatch方法
這篇文章主要介紹了使用Spring AntPathMatcher的doMatch方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
淺談為什么Java中1000==1000為false而100==100為true
這篇文章主要介紹了淺談為什么Java中1000==1000為false而100==100為true,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
一文詳解Elasticsearch和MySQL之間的數(shù)據(jù)同步問題
Elasticsearch中的數(shù)據(jù)是來自于Mysql數(shù)據(jù)庫的,因此當數(shù)據(jù)庫中的數(shù)據(jù)進行增刪改后,Elasticsearch中的數(shù)據(jù),索引也必須跟著做出改變。本文主要來和大家探討一下Elasticsearch和MySQL之間的數(shù)據(jù)同步問題,感興趣的可以了解一下2023-04-04
Java中ArrayList與順序表的定義與實現(xiàn)方法
ArrayList是一個實現(xiàn)List接口的類,底層是動態(tài)類型順序表,本質(zhì)也就是數(shù)組,動態(tài)主要體現(xiàn)在它的擴容機制,下面這篇文章主要給大家介紹了關于Java中ArrayList與順序表的定義與實現(xiàn)的相關資料,需要的朋友可以參考下2022-07-07

