1. 程式人生 > >Spring Data Redis整體介紹 (一)

Spring Data Redis整體介紹 (一)

目前 擴展 刪除 依據 實例化 -m doc 不同的 SDR

為什麽使用Spring Data Redis

首先Spring Data RedisSpring 框架提供的用於操作Redis的客戶端。
Spring框架是一個全棧Java程序框架,通過DIAOP和便攜的服務抽象提供一個輕量的容器和非侵入編程模型支持。
NoSQL存儲為傳統的關系型數據庫提供了橫向擴展和速度上的替代,Key-Value存儲是目前NoSQL領域的主要成員。
Spring Data Redis(SDR)框架通過消除冗余的、重復的集成代碼,使Spring程序能簡單的使用Redis的Key-Value存儲。

Spring Data Redis目前支持兩種驅動:Jedis和Lettuce,可以看成是這兩種驅動的統一封裝,以高度統一的形式屏蔽了底層驅動的操作細節,向用戶提供一種統一的API,大致結構如下:

![層次結構

Spring Data Redis整體結構

Spring Data RedisSpring 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整體介紹 (一)