分佈式緩存管理平臺XXL-CACHE 原 薦

《分佈式緩存管理平臺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-cacheDownload
http://gitee.com/xuxueli0323/xxl-cacheDownload

技術交流

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 登記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章