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

《分佈式緩存管理平臺XXL-CACHE》

1、簡介

1.1 概述

XXL-CACHE是一個分佈式緩存管理平臺,其核心設計目標是「讓分佈式緩存的接入和管理的更加的簡潔和高效」。現已開放源代碼,開箱即用。html

XXL-CACHE核心思想:將分佈式緩存抽象成公共RPC服務,對外提供公共API進行緩存操做; 提供緩存公共的管理和監控平臺:方便的查詢、管理和監控線上緩存數據;mysql

1.2 特性

  • 一、多種緩存支持:支持Redis、Memcached兩種緩存在線的查詢和管理;
  • 二、分佈式緩存管理:支持分佈式環境下,集羣緩存服務的查詢和管理,自動命中緩存服務節點;
  • 三、方便:支持經過Web界管理緩存模板,查詢和管理緩存數據;
  • 四、透明:集羣節點變更時,緩存命中的分片邏輯保持線上一致,自動命中緩存數據;
  • 五、查看序列化緩存數據:一般緩存中保存的是序列化的Java數據,所以當須要查看緩存鍵值數據很是麻煩,本系統支持方便的查看緩存數據內容,反序列化數據;
  • 六、查看緩存數據長度:直觀顯示緩存數據的長度;
  • 七、查看緩存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、快速入門

2.1 初始化「數據庫」

請下載項目源碼並解壓,獲取 "調度數據庫初始化SQL腳本"(腳本文件爲: 源碼解壓根目錄/xxl-cache/doc/db/xxl-cache-mysql.sql) 並執行便可。git

2.2 編譯源碼

解壓源碼,按照maven格式將源碼導入IDE, 使用maven進行編譯便可,源碼結構以下圖所示:github

輸入圖片說明

  • xxl-cache-admin:緩存管理平臺
  • xxl-cache-core:公共依賴,爲緩存服務抽象成公共RPC服務作準備

2.3 配置部署「緩存管理平臺」

項目:xxl-cache-admin
做用:查詢和管理線上分佈式緩存數據
  • A:配置「JDBC連接」:請在下圖所示位置配置jdbc連接地址,連接地址請保持和 2.1章節 所建立的調度數據庫的地址一致。

輸入圖片說明

  • B:配置「分佈式緩存配置」:請在下圖所示位置配置分佈樹緩存信息,和線上項目中緩存配置務必保持一致。

輸入圖片說明

配置詳解:redis

# 緩存類型, 取值範圍: 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 查詢線上緩存

進入「緩存管理」界面,點擊「新增緩存模板界面」,配置模板信息
輸入圖片說明sql

而後,點擊緩存模板右側的「緩存操做」按鈕
輸入圖片說明數據庫

Set緩存數據,代碼以下
輸入圖片說明緩存

點擊「查詢緩存」,便可直觀查看緩存信息
輸入圖片說明maven

2、緩存模板詳解

3.1 XXl-CACHE系統中經常使用名詞(緩存屬性)解釋

緩存模板:生成緩存Key的模板,佔位符用{0}、{1}、{2}依次替代;
緩存描述:緩存的描述說明;
緩存參數:「緩存模板」中佔位符對應的參數,多個參數逗號分隔,依次替換佔位符{0}、{1}、{2}的位置;
FinalKey:保存在分佈式緩存服務中最終的Key的值,根據「緩存模板」和「緩存參數」生成;

4、緩存管理

分佈式

5、整體設計

5.1 源碼目錄介紹

- /db :「數據庫」建表腳本
- /xxl-cache-admin :緩存管理平臺,項目源碼;
- /xxl-cache-core : 公共依賴;(規劃中)

5.2 核心思想

XXL-CACHE核心思想:

  • 一、將分佈式緩存抽象成公共RPC服務,對外提供公共API進行緩存操做:
    • 一、項目接入緩存服務更加方便:接入方只須要依賴一個RPC服務的API便可;
    • 二、統一監控和維護緩存服務;
    • 三、方便控制client鏈接數量;
    • 四、緩存節點變動更加方便;
    • 五、在節點變動時, 緩存分片很大可能會受影響, 這將致使不一樣服務的分片邏輯出現不一致的狀況, 統一緩存服務能夠避免之;
    • 六、能夠屏蔽底層API操做,提供公共API,避免API誤操做;
  • 二、提供緩存管理和監控平臺:方便的查詢、管理和監控線上緩存數據;

規劃中

  • 一、支持遍歷線上緩存, 好比Redis模式, 經過 keys * 獲取線上全部緩存Key的列表;

6、歷史版本

版本1.0.0

時間:2016年7月下旬;

特性:

  • 一、多種緩存支持:支持Redis、Memcached兩種緩存在線的查詢和管理;
  • 二、分佈式緩存管理:支持分佈式環境下,集羣緩存服務的查詢和管理,自動命中緩存服務節點;
  • 三、方便:支持經過Web界管理緩存模板,查詢和管理緩存數據;
  • 四、透明:集羣節點變更時,緩存命中的分片邏輯保持線上一致,自動命中緩存數據;
  • 五、查看序列化緩存數據:一般緩存中保存的是序列化的Java數據,所以當須要查看緩存鍵值數據很是麻煩,本系統支持方便的查看緩存數據內容,反序列化數據;
  • 六、查看緩存數據長度:直觀顯示緩存數據的長度;
  • 七、查看緩存JSON格式內容:支持將緩存數據轉換成JSON格式,直觀查看緩存數據內容;

7、其餘

7.1 報告問題

XXL-CACHE託管在Github上,若有問題可在 ISSUES 上提問,也能夠加入上文技術交流羣;

7.2 接入登記

更多接入公司,歡迎在github 登記

相關文章
相關標籤/搜索