SpringBoot使用Spring?Cache高效處理緩存數(shù)據(jù)
Spring Cache是一個框架,只要簡單加一個注解,就能實現(xiàn)緩存功能。Spring Cache是Spring Framework提供的一個模塊,它為應用程序添加了緩存支持。通過使用Spring Cache,你可以在方法級別上定義緩存規(guī)則,將方法的返回結果緩存起來,以提高方法調用的性能和響應速度。
??簡述Spring Cache
是一個框架,只要簡單加一個注解
,就能實現(xiàn)緩存功能
Spring Cache 是 Spring Framework 提供的一個模塊,它為應用程序添加了緩存支持。通過使用 Spring Cache,你可以在方法級別上定義緩存規(guī)則,將方法的返回結果緩存起來,以提高方法調用的性能和響應速度。
Spring Cache 的主要特點和功能包括:
注解驅動:Spring Cache 基于注解,通過在方法上添加 @Cacheable、@CachePut、@CacheEvict 等注解,來定義緩存規(guī)則和行為。
支持多種緩存實現(xiàn):Spring Cache 支持多種常見的緩存實現(xiàn),包括 Ehcache、Redis、Caffeine、ConcurrentMap 等,你可以根據(jù)自己的需求選擇合適的緩存提供者。
靈活的緩存配置:你可以通過配置文件或者 Java 代碼來靈活地配置緩存管理器、緩存的過期時間、緩存的鍵生成策略等。
支持條件化的緩存操作:除了基本的緩存注解外,Spring Cache 還支持條件化的緩存操作,比如通過 SpEL 表達式來定義條件,決定是否執(zhí)行緩存操作。
總之,Spring Cache 提供了一種便捷的方式來實現(xiàn)方法級別的緩存,使得開發(fā)者可以專注于業(yè)務邏輯的實現(xiàn),而不必過多關注緩存的管理和維護。這樣可以有效地提升應用程序的性能,并減少對底層緩存實現(xiàn)的耦合。
常用注解
@Cacheable:觸發(fā)將方法返回結果緩存。
@CacheEvict:觸發(fā)從緩存中清除一條或多條數(shù)據(jù)。
@CachePut:觸發(fā)將方法返回結果更新到緩存。
@Caching:組合多個緩存注解在一個方法上。
@CacheConfig:在類級別共享緩存注解的通用配置。
??使用SpringCache
使用SpringCache需要把下面的代碼導入到pom文件中
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>2.7.3</version> </dependency>
這樣子我們就可以使用SpringCache了
我們打開下面鏈接里面的文件,我們下面要使用文件中的代碼進行講解springcache_jb51.rar
我們首先來啟動Redis服務
CacheDemoApplication.java
在啟動類上加上這個注解,開啟緩存注解功能
@EnableCaching
@Cacheable注解
進入controller包
UserController.java
加入下面的注解
@CachePut
插入數(shù)據(jù)的同時,我們還需要把數(shù)據(jù)保存到Redis中一份
?測試
我們啟動項目,輸入http://localhost:8888/doc.html打開接口文檔
進行測試
發(fā)現(xiàn)發(fā)送成功,我們去查看數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫已經插入了一條數(shù)據(jù)了
我們打開Redis Desktop Manager,連接成功后,發(fā)送數(shù)據(jù)
發(fā)現(xiàn)
user5對象已經進行了序列化
@CacheEvict
??一次清理一條數(shù)據(jù)
如果我們把數(shù)據(jù)庫中的數(shù)據(jù)給刪除掉了,那么對應的緩存數(shù)據(jù)我們也應該刪除,下面我們就來使用@CacheEvict注解來刪除緩存數(shù)據(jù)
我們加上這一段代碼
@CacheEvict(cacheNames = "userCache",key = "#id")
然后啟動項目
輸入http://localhost:8888/doc.html打開接口文檔
進行測試
查詢數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫里面對應id=2的字段被刪除了
Redis緩存也刪除了
??一次刪除多條數(shù)據(jù)
我們在deleteAll這個方法中進行操作
仍然加上@CacheEvict注解
@CacheEvict(cacheNames = "userCache",allEntries = true)
使用接口文檔http://localhost:8888/doc.html
發(fā)送數(shù)據(jù),就可以刪除所有緩存了
到此這篇關于SpringBoot使用Spring Cache高效處理緩存數(shù)據(jù)的文章就介紹到這了,更多相關Spring Cache緩存內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- springboot整合單機緩存ehcache的實現(xiàn)
- SpringBoot中整合Ehcache實現(xiàn)熱點數(shù)據(jù)緩存的詳細過程
- Spring中的@Cacheable緩存注解詳解
- SpringBoot?Cache?二級緩存的使用
- 詳解如何使用SpringBoot的緩存@Cacheable
- Spring中緩存注解@Cache的使用詳解
- SpringCache緩存處理詳解
- 詳解Springboot @Cacheable 注解(指定緩存位置)
- Spring Cache @Cacheable 緩存在部分Service中不生效的解決辦法
- Springboot使用@Cacheable注解實現(xiàn)數(shù)據(jù)緩存
相關文章
SpringBoot+Mybatis-plus+shardingsphere實現(xiàn)分庫分表的方案
實現(xiàn)億級數(shù)據(jù)量分庫分表的項目是一個挑戰(zhàn)性很高的任務,下面是一個基于Spring Boot的簡單實現(xiàn)方案,感興趣的朋友一起看看吧2024-03-03java并發(fā)編程專題(九)----(JUC)淺析CyclicBarrier
這篇文章主要介紹了java CyclicBarrier的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-07-07