複製鏈接
請複製以下鏈接發送給好友

CODIS

(分佈式 Redis 解決方案)

鎖定
Codis 是一個分佈式 Redis 解決方案, 對於上層的應用來説, 連接到 Codis Proxy 和連接原生的 Redis Server 沒有明顯的區別 (不支持的命令列表), 上層應用可以像使用單機的 Redis 一樣使用, Codis 底層會處理請求的轉發, 不停機的數據遷移等工作, 所有後邊的一切事情, 對於前面的客户端來説是透明的, 可以簡單的認為後邊連接的是一個內存無限大的 Redis 服務.
中文名
分佈式 Redis 解決方案
外文名
CODIS

目錄

CODIS組成部分

  • Codis Proxy (codis-proxy)
  • Codis Manager (codis-config)
  • Codis Redis (codis-server)
  • ZooKeeper
codis-proxy 是客户端連接的 Redis 代理服務, codis-proxy 本身實現了 Redis 協議, 表現得和一個原生的 Redis 沒什麼區別 (就像 Twemproxy), 對於一個業務來説, 可以部署多個 codis-proxy, codis-proxy 本身是無狀態的.
codis-config 是 Codis 的管理工具, 支持包括, 添加/刪除 Redis 節點, 添加/刪除 Proxy 節點, 發起數據遷移等操作. codis-config 本身還自帶了一個 http server, 會啓動一個 dashboard, 用户可以直接在瀏覽器上觀察 Codis 集羣的運行狀態.
codis-server 是 Codis 項目維護的一個 Redis 分支, 基於 2.8.13 開發, 加入了 slot 的支持和原子的數據遷移指令. Codis 上層的 codis-proxy 和 codis-config 只能和這個版本的 Redis 交互才能正常運行.
Codis 依賴 ZooKeeper 來存放數據路由表和 codis-proxy 節點的元信息, codis-config 發起的命令都會通過 ZooKeeper 同步到各個存活的 codis-proxy.
Codis 支持按照 Namespace 區分不同的產品, 擁有不同的 product name 的產品, 各項配置都不會衝突. [1] 

CODIS特性

  • 自動平衡
  • 使用非常簡單
  • 圖形化的面板和管理工具
  • 支持絕大多數 Redis 命令,完全兼容twemproxy
  • 支持 Redis 原生客户端
  • 安全而且透明的數據移植,可根據需要輕鬆添加和刪除節點
  • 提供命令行接口

CODIS安裝

  • Install go
  • go get github.com/wandoulabs/codis
  • cd codis
  • ./bootstrap.sh
  • make gotest
  • cd sample
  • follow instructions in usage.md
參考資料