標籤:為什麼 刪除 src down 代碼 大致 架構 str api
為什麼使用Spring Data Redis
首先Spring Data Redis
是Spring
架構提供的用於操作Redis的用戶端。
Spring架構是一個全棧Java程式架構,通過DI
、AOP
和便攜的服務抽象提供一個輕量的容器和非侵入編程模型支援。
NoSQL儲存為傳統的關係型資料庫提供了橫向擴充和速度上的替代,Key-Value儲存是目前NoSQL領域的主要成員。
Spring Data Redis(SDR)
架構通過消除冗餘的、重複的整合代碼,使Spring程式能簡單的使用Redis的Key-Value儲存。
Spring Data Redis目前支援兩種驅動:Jedis和Lettuce,可以看成是這兩種驅動的統一封裝,以高度統一的形式屏蔽了底層驅動的操作細節,向使用者提供一種統一的API,大致結構如下:
![階層
Spring Data Redis整體結構
Spring Data Redis
與 Spring Data
家族的其他資料操作如:Spring Data JDBC
,以類似的結構進行封裝,降低使用者的學習成本;只要使用過其中一種Spring Data
技術,對其他的資料來源操作能依葫蘆畫瓢的進行,封裝的整體結構如下:
將封裝的層次分為4部分:
1) 底層的工廠層和串連層,這裡會依據驅動的不同而有不同的實現;串連層可以直接與Redis Server
進行互動,採用位元據和命令進行。
2) 模板層是對串連層的進一步封裝,對Redis的每種資料類型,都封裝一個操作類,與Redis Server
進行互動,如String
類型的ValueOperations
;而RedisTemplate
持有所有類型操作的引用,所以可以直接通過定義RedisTemplate
對Redis進行操作;RedisTemplate
封裝了通用的操作,如刪除key,設定到期時間,對不同資料類型的操作通過具體的操作類進行。
3) 鍵綁定層是對模板層的更進一步封裝,每個類型的執行個體只能操作單一的索引值(執行個體化時已經指定了鍵)
系統要求與學習資料
Spring Data Redis
的系統要求:Spring Data Redis 1.x --> JDK 1.6 + 、Redis 2.6.x +
常用的Redis Java用戶端有:Jedis、Lettuce、Redison、Spring Data Redis,對應的學習資料如下:
Jedis:https://github.com/xetorthio/jedis/wiki
Lettuce:https://github.com/lettuce-io/lettuce-core/wiki
Redison:https://github.com/redisson/redisson
SPR:https://docs.spring.io/spring-data/redis/docs/2.0.2.RELEASE/reference/html/
更多用戶端參照:http://www.redis.net.cn/clients/#java
Spring Data Redis整體介紹 (一)