1.首先,說明所使用的環境:
org.springframework.data
spring-data-redis
1.6.2.release
redis.clients
jedis
2.8.0
spring採用的3.1.2release,
2.由於專案中使用到了redis,所以為了減輕資料庫壓力,最近打算把部分訪問頻率較高的資料放到redis中,並以redis作為專案快取,開始爬坑了.....
3.步驟
xmlns:cache=""
/spring-cache.xsd
第二步:配置檔案
3.2.1 redis的連線池配置
3.2.2 redis連線工廠
3.2.3 redis的操作模板[將redis給spring去管理]
3.2.4 可以自定義乙個工具類,交給spring的ioc管理
3.2.5 redis的快取管理類的配置
xxyq_globalset
play_repeat_state
get_qtxx_lhpl
3.2.6 最後一步:開啟快取的註解掃瞄:
注意: cache-manager的預設值是cachemanager,如果你的快取管理類是cachemanager,那麼 cache-manager屬性可省略
至此,以redis作為專案快取基本完成,下面記錄一下桑常用註解的各個屬性的含義:
4. cache註解介紹@cacheable,@cacheput,@cacheevict
4.1 @cacheable註解的配置與用法
@cacheable主要是針對方法配置,根據方法請求引數對其結果進行快取,注意,快取的是結果 ----- 即方法的返回值
@cacheable作用在方法上,如果快取中有值的話,就不會去呼叫方法,直接從快取中獲取值返回(類似於get操作)
主要引數
引數含義
示例value
快取的名稱,在 spring 配置檔案[快取管理類中,本文是在cachemanager]中定義,必須指定至少乙個
@cacheable(value=」mycache」) 或者
@cacheable(value=
key快取的key值,可為空,如果指定要按照 spel 表示式編寫,如果不指定,則預設按照方法的所有引數進行組合
@cacheable(value=」testcache」,key=」#username」)
condition
快取的條件,可以為空,使用 spel 編寫,返回 true 或者 false,只有為 true 才進行快取
@cacheable(value=」testcache」,condition=」#username.length()>2」)
4.2 @cacheput註解的配置與用法
@cacheput根據方法的請求引數對其結果進行快取
每次請求會先呼叫方法,然後將返回值進行快取(類似於update操作)
4.3 @cacheevict註解的配置與用法
@cachevict,能夠根據一定的條件對快取進行清空(類似於delete操作)
主要引數
引數含義
示例value
快取的名稱,在 spring 配置檔案中定義,必須指定至少乙個
@cachevict(value=」mycache」) 或者
@cachevict(value=
key快取的 key,可以為空,如果指定要按照 spel 表示式編寫,如果不指定,則預設按照方法的所有引數進行組合
@cachevict(value=」testcache」,key=」#username」)
condition
快取的條件,可以為空,使用 spel 編寫,返回 true 或者 false,只有為 true 才清空快取
@cachevict(value=」testcache」,
condition=」#username.length()>2」)
allentries
是否清空所有快取內容,預設為 false,如果指定為 true,則方法呼叫後將立即清空所有快取
@cachevict(value=」testcache」,allentries=true)
beforeinvocation
是否在方法執行前就清空,預設為 false,如果指定為 true,則在方法還沒有執行的時候就清空快取,預設情況下,如果方法執行丟擲異常,則不會清空快取
@cachevict(value=」testcache」,beforeinvocation=true)
使用Redis作為LRU快取
當 redis 作為快取使用時,當你新增新的資料時,有時候很方便使 redis 自動 老的資料。lru 實際上是被唯一支援的資料移除方法。redis 的 maxmemory 指令,用於限制記憶體使用到乙個固定的容量,也包含深入 redis 使用的 lru 演算法,乙個近似準確的 lru。maxmem...
Django中,使用redis作為快取
已有django專案,在其中設定以redis為快取。1 安裝django redis pip install django redis 2 在settings裡面配置cache設定 caches 3 設定好後可以在shell中測試一下 1 在終端中啟動shell python manage.py s...
配置Redis作為快取
將 redis 用作快取時,如果記憶體空間用滿,就會自動驅逐老的資料。預設情況下 memcached 就是這種方式,大部分開發者都比較熟悉。lru是redis唯一支援的 演算法.本文詳細介紹用於限制最大記憶體使用量的maxmemory指令,並深入講解 redis 所使用的近似lru演算法。maxme...