-
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特性
- 自動平衡
- 使用非常簡單
- 圖形化的面板和管理工具
- 支持絕大多數 Redis 命令,完全兼容twemproxy
- 安全而且透明的數據移植,可根據需要輕鬆添加和刪除節點
- 提供命令行接口
CODIS安裝
- Install go
- go get github.com/wandoulabs/codis
- cd codis
- ./bootstrap.sh
- make gotest
- cd sample
- follow instructions in usage.md
- 參考資料
-
- 1. Codis 使用文檔 .github[引用日期2015-07-24]