天天看點

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

Codis搭建

  • codis簡介
      • codis的四個關鍵元件
      • codis處理請求的原理
  • 安裝go環境
  • 部署Codis環境
      • Codis下載下傳
      • 編譯
  • 啟動Codis
      • 啟動codis-dashboard
      • 啟動codis-proxy
      • 啟動codis-server
  • 啟動codis-fe
  • 通過fe添加group
  • 通過fe初始化slot
  • 添加兩個redis執行個體

codis簡介

Codis 是一個分布式 Redis 解決方案, 對于上層的應用來說, 連接配接到 Codis Proxy 和連接配接原生的 Redis Server 沒有顯著差別 。 上層應用可以像使用單機的 Redis 一樣使用Codis。Codis 底層會不停的轉發請求、做資料遷移等工作。 對于前面的用戶端來說是透明的, 可以簡單的認為後邊連接配接的是一個記憶體無限大的 Redis 服務。

codis的四個關鍵元件

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

codis server: 這是進行了二次開發的 Redis 執行個體,其中增加了額外的資料結構,支援資料遷移操作,主要負責處理具體的資料讀寫請求

codis proxy: 接收用戶端請求,并把請求轉發給 codis server

Zookeeper 叢集:儲存叢集中繼資料,例如資料位置資訊和 codis proxy 資訊

codis dashboard 和 codis fe:

codis dashboard:負責執行叢集管理工作,包括增删 codis server、codis proxy 和資料遷移

codis fe:提供 dashboard 的 Web 操作界面,便于直接在 Web 界面上叢集管理

codis處理請求的原理

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

資料 key 和 Slot 的映射關系是用戶端在讀寫資料前直接通過算法CRC32 計算得到的;

Slot 和 codis server 的映射關系是通過配置設定完成的,需要用存儲系統儲存,否則,叢集有故障,映射關系就會丢失;

Slot 和 codis server 的映射關系稱為資料路由表(簡稱路由表);

codis dashboard 上配置設定好路由表,dashboard 會把路由表發給 codis proxy,dashboard 也會把路由表儲存在 Zookeeper 中。

下面的實驗,參考

https://github.com/CodisLabs/codis/blob/master/doc/tutorial_zh.md

安裝go環境

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

部署Codis環境

Codis下載下傳

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

編譯

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

啟動Codis

快速建構一個單機版測試 codis 叢集,無任何外部元件依賴.

源碼中 admin 檔案夾提供了一系列腳本以便快速啟動、停止各個元件,提高運維效率。

啟動codis-dashboard

使用 codis-dashboard-admin.sh 腳本啟動 dashboard,并檢視 dashboard 日志确認啟動是否有異常。

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

預設資料路徑儲存在 /tmp/codis,若啟動失敗,請檢查目前使用者是否對該路徑擁有讀寫權限。

啟動codis-proxy

使用 codis-proxy-admin.sh 腳本啟動 codis-proxy,并檢視 proxy 日志确認啟動是否有異常。

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

啟動codis-server

使用 codis-server-admin.sh 腳本啟動 codis-server,并檢視 redis 日志确認啟動是否有異常。

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

redis.conf 配置中 pidfile、logfile 預設儲存在 /tmp 目錄,若啟動失敗,請檢查目前使用者是否有該目錄的讀寫權限。

啟動codis-fe

使用 codis-fe-admin.sh 腳本啟動 codis-fe,并檢視 fe 日志确認啟動是否有異常。

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

通過fe添加group

通過web浏覽器通路叢集管理頁面(fe位址:172.20.10.2:9090) 選擇剛搭建的叢集 codis-demo,在 Proxy 欄可看到我們已經啟動的 Proxy, 但是 Group 欄為空,因為我們啟動的 codis-server 并未加入到叢集 添加 NEW GROUP,NEW GROUP 行輸入 1,再點選 NEW GROUP 即可 添加 Codis Server,Add Server 行輸入我們剛剛啟動的 codis-server 位址,添加到我們剛建立的 Group,然後再點選 Add Server 按鈕即可,如下圖所示

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

通過fe初始化slot

新增的叢集 slot 狀态是 offline,是以我們需要對它進行初始化(将 1024 個 slot 配置設定到各個 group),而初始化最快的方法可通過 fe 提供的 rebalance all slots 按鈕來做,如下圖所示,點選此按鈕,我們即快速完成了一個叢集的搭建。

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體

添加兩個redis執行個體

Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體
Codis搭建codis簡介安裝go環境部署Codis環境啟動Codis啟動codis-fe通過fe添加group通過fe初始化slot添加兩個redis執行個體