SpringBoot的快取處理及整合Redis

2021-09-27 03:20:12 字數 1829 閱讀 5255

前言:本文不編寫快取的具體實現**,只講解一些關於快取的具體知識點

關於快取:

spring從3.1開始定義了org.springframework.cache.cache 和org.springframework.cache.cachemanager介面來統一不同的快取技術; 並支援使用jcache(jsr-107)註解簡化我們開發;

• cache介面為快取的元件規範定義,包含快取的各種操作集合; • cache介面下spring提供了各種***cache的實現;如rediscache,ehcachecache , concurrentmapcache等;

• 每次呼叫需要快取功能的方法時,spring會檢查檢查指定引數的指定的目標方法是否 已經被呼叫過;如果有就直接從快取中獲取方法呼叫後的結果,如果沒有就呼叫方法 並快取結果後返回給使用者。下次呼叫直接從快取中獲取。 • 使用spring快取抽象時我們需要關注以下兩點; 1、確定方法需要被快取以及他們的快取策略 2、從快取中讀取之前快取儲存的資料

首先講解springboot快取的幾個重要的註解

註解講解:

用途:主要針對方法配置,能夠根據方法的請求引數對其結果進行快取,以後若需要同樣的資料則不需要呼叫資料庫,直接從快取中獲得。

幾個重要的屬性:

1:快取的名稱,在 spring 配置檔案中定義,必須 指定至少乙個,將方法返回的結果放在那個快取中,以陣列的形式

例如: @cacheable(value=」mycache」) 或者 @cacheable(value=

2:key:快取資料制定的key。快取資料是以鍵值對的形式存在。

key的常用方法:(可以不寫,預設為方法的引數值)

3、keygenerator: key的生成器,可以自己編寫key的生成器元件。

注意:在使用時key和keygenerator二選一。

4、cachemanager: 指定快取管理器。

5、condition: 指定符合條件的情況下才快取;如: condition = 「#id>0」 "#a0>1"才進行快取

6、unless: 否定快取; 當unless指定的條件為true,方法的返回值就不會快取;

如:可以獲取到結果進行判斷unless = "#result == null " 當方法結果為null時,不快取。

7、sync: 是否使用非同步模式

public @inte***ce

caching

; cacheput[

]put()

default

; cacheevict[

]evict()

default

;}

@caching

( cacheable =

, put =

)

>

>

org.springframework.bootgroupid

>

>

spring-boot-starter-data-redisartifactid

>

dependency

>

spring boot 快取配置

隨著時間的積累,應用的使用使用者不斷增加,資料規模也越來越大,往往資料庫查詢操作會成為影響使用者使用體驗的瓶頸,此時使用快取往往是解決這一問題非常好的手段之一。spring 3開始提供了強大的基於註解的快取支援,可以通過註解配置方式低侵入的給原有spring應用增加快取功能,提高資料訪問效能。在sp...

springboot快取測試

配置pom.xml加入快取依賴 org.springframework.boot spring boot starter cache 程式入口加上註解 enablecaching快取對應的實體類序列化 implements serializable 在快取的需要快取的service 加上 cache...

SpringBoot快取使用

org.springframework.boot spring boot starter cache 專案使用springboot自帶的快取機制實現快取 redis快取 redis是一款記憶體快取記憶體資料庫 membase快取 memcache是乙個自由和開放源 高效能 分配的記憶體物件快取系統。...