Spring Data Redis整體介紹 (一)
為什麽使用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整體介紹 (一)