《分布式緩存管理平台XXL-CACHE》
一、簡介
1.1 概述
XXL-CACHE是一個分布式緩存管理平台,其核心設計目標是“讓分布式緩存的接入和管理的更加的簡潔和高效”。現已開放源代碼,開箱即用。
XXL-CACHE核心思想:將分布式緩存抽象成公共RPC服務,對外提供公共API進行緩存操作; 提供緩存公共的管理和監控平台:方便的查詢、管理和監控線上緩存數據;
1.2 特性
- 1、多種緩存支持:支持Redis、Memcached兩種緩存在線的查詢和管理;
- 2、分布式緩存管理:支持分布式環境下,集群緩存服務的查詢和管理,自動命中緩存服務節點;
- 3、方便:支持通過Web界管理緩存模板,查詢和管理緩存數據;
- 4、透明:集群節點變動時,緩存命中的分片邏輯保持線上一致,自動命中緩存數據;
- 5、查看序列化緩存數據:通常緩存中保存的是序列化的Java數據,因此當需要查看緩存鍵值數據非常麻煩,本系統支持方便的查看緩存數據內容,反序列化數據;
- 6、查看緩存數據長度:直觀顯示緩存數據的長度;
- 7、查看緩存JSON格式內容:支持將緩存數據轉換成JSON格式,直觀查看緩存數據內容;
1.3 下載
文檔地址
源碼倉庫地址
源碼倉庫地址 | Release Download |
---|---|
https://github.com/xuxueli/xxl-cache | Download |
http://gitee.com/xuxueli0323/xxl-cache | Download |
技術交流
1.4 環境
- Maven3+
- Jdk1.7+
- Tomcat7+
- Mysql5.5+
二、快速入門
2.1 初始化“數據庫”
請下載項目源碼並解壓,獲取 "調度數據庫初始化SQL腳本"(腳本文件為: 源碼解壓根目錄/xxl-cache/doc/db/xxl-cache-mysql.sql) 並執行即可。
2.2 編譯源碼
解壓源碼,按照maven格式將源碼導入IDE, 使用maven進行編譯即可,源碼結構如下圖所示:
- xxl-cache-admin:緩存管理平台
- xxl-cache-core:公共依賴,為緩存服務抽象成公共RPC服務做准備
2.3 配置部署“緩存管理平台”
項目:xxl-cache-admin
作用:查詢和管理線上分布式緩存數據
- A:配置“JDBC鏈接”:請在下圖所示位置配置jdbc鏈接地址,鏈接地址請保持和 2.1章節 所創建的調度數據庫的地址一致。
- B:配置“分布式緩存配置”:請在下圖所示位置配置分布樹緩存信息,和線上項目中緩存配置務必保持一致。
配置詳解:
# 緩存類型, 取值范圍: Memcached, Redis;(如配置Redis,則Redis地址生效,Memcached配置則被忽略,可刪除)
cache.type=Redis
# redis集群地址配置, 多個地址用逗號分隔(當cache.type為Redis時生效)
sharded.jedis.address=192.168.56.101:6379
# memcached集群地址配置, 多個地址用逗號分隔(當cache.type為Memcached時生效)
xmemcached.address=192.168.56.101:11211
# for login (登錄賬號)
login.username=admin
login.password=123456
2.4 查詢線上緩存
進入“緩存管理”界面,點擊“新增緩存模板界面”,配置模板信息
然后,點擊緩存模板右側的“緩存操作”按鈕
Set緩存數據,代碼如下
點擊“查詢緩存”,即可直觀查看緩存信息
二、緩存模板詳解
3.1 XXl-CACHE系統中常用名詞(緩存屬性)解釋
緩存模板:生成緩存Key的模板,占位符用{0}、{1}、{2}依次替代;
緩存描述:緩存的描述說明;
緩存參數:“緩存模板”中占位符對應的參數,多個參數逗號分隔,依次替換占位符{0}、{1}、{2}的位置;
FinalKey:保存在分布式緩存服務中最終的Key的值,根據“緩存模板”和“緩存參數”生成;
四、緩存管理
略
五、總體設計
5.1 源碼目錄介紹
- /db :“數據庫”建表腳本
- /xxl-cache-admin :緩存管理平台,項目源碼;
- /xxl-cache-core : 公共依賴;(規划中)
5.2 核心思想
XXL-CACHE核心思想:
-
1、將分布式緩存抽象成公共RPC服務,對外提供公共API進行緩存操作:
- 1、項目接入緩存服務更加方便:接入方只需要依賴一個RPC服務的API即可;
- 2、統一監控和維護緩存服務;
- 3、方便控制client連接數量;
- 4、緩存節點變更更加方便;
- 5、在節點變更時, 緩存分片很大可能會受影響, 這將導致不同服務的分片邏輯出現不一致的情況, 統一緩存服務可以避免之;
- 6、可以屏蔽底層API操作,提供公共API,避免API誤操作;
-
2、提供緩存管理和監控平台:方便的查詢、管理和監控線上緩存數據;
規划中
- 1、支持遍歷線上緩存, 比如Redis模式, 通過 keys * 獲取線上所有緩存Key的列表;
六、歷史版本
版本1.0.0
時間:2016年7月下旬;
特性:
- 1、多種緩存支持:支持Redis、Memcached兩種緩存在線的查詢和管理;
- 2、分布式緩存管理:支持分布式環境下,集群緩存服務的查詢和管理,自動命中緩存服務節點;
- 3、方便:支持通過Web界管理緩存模板,查詢和管理緩存數據;
- 4、透明:集群節點變動時,緩存命中的分片邏輯保持線上一致,自動命中緩存數據;
- 5、查看序列化緩存數據:通常緩存中保存的是序列化的Java數據,因此當需要查看緩存鍵值數據非常麻煩,本系統支持方便的查看緩存數據內容,反序列化數據;
- 6、查看緩存數據長度:直觀顯示緩存數據的長度;
- 7、查看緩存JSON格式內容:支持將緩存數據轉換成JSON格式,直觀查看緩存數據內容;
七、其他
7.1 報告問題
XXL-CACHE托管在Github上,如有問題可在 ISSUES 上提問,也可以加入上文技術交流群;
7.2 接入登記
更多接入公司,歡迎在github 登記