天天看點

Redis叢集實踐操作之Codis

在講述Codis叢集的環境搭建之前,我先大緻的介紹一下Codis

  • Codis是什麼?
  1. Codis是一款分布式Redis的解決方案;
  2. Codis可以使上層應用可以像使用單機的 Redis 一樣使用Redis叢集
  3. Codis可以在應用運作期間動态增減節點和漂移插槽
  • 為什麼使用Codis?
  1. Redis Cluster的資料存儲子產品和分布式的邏輯子產品是耦合在一起的,這樣帶來的好處和缺點都同樣明顯,好處在于配置簡單,缺點在于很難實作平滑更新
  2. 線上維護Redis叢集是一個比較耗費工作量的工作,尤其是涉及到插槽的配置設定遷移、以及增減Redis節點等,需要小心再小心
  3. 對應用程式不友好,單機Redis和叢集Redis的JavaAPI完全不一緻,兩者的切換會造成大量開發工作

Codis的主要目标就是為了解決以上這些問題的。

講述完了Codis是什麼以及為什麼使用Codis。那麼接下來,我們開始完成Codis的叢集搭建吧。

  • 環境準備:

codis3.2.2-go1.8.5-linux.tar.gz

glibc-2.17.tar.gz

go1.10.linux-amd64.tar.gz

zookeeper-3.4.11.tar.gz

  • Go環境配置安裝

由于Codis是使用GO語言編寫的,是以使用Codis需要先安裝GO語言環境,安裝過程如下:

        将go1.10.linux-amd64.tar.gz解壓至預期安裝目錄下,我這裡将其放置在 /usr/local/ 目錄下,截圖如下:

Redis叢集實踐操作之Codis

配置GOROOT環境變量 vi /etc/profile

Redis叢集實踐操作之Codis
GOPATH的目錄是用來辨別GO的所有第三方軟體放置位置,目前我們隻有一個Codis
  • Zookeeper環境配置安裝

Codis依賴于Zookeeper,首先我們将Zookeeper解壓至 /usr/local/ 目錄下

Redis叢集實踐操作之Codis
将Zookeeper的conf目錄下zoo.sample.cfg修改為zoo.cfg檔案
Redis叢集實踐操作之Codis
  • Codis環境配置安裝

将codis3.2.2-go1.8.5-linux.tar.gz解壓至剛剛配置的GOPATH目錄下,然後依次配置即可。

Codis-server配置啟動

codis-server其實就相當于redis-server,也就是codis-server可以啟動很多個redis執行個體

建立配置檔案存儲目錄[因為要建立兩個Redis執行個體]

mkdir -p /usr/local/codis3.2.2-go1.8.5-linux/conf/redis/redis_6379
mkdir -p /usr/local/codis3.2.2-go1.8.5-linux/conf/redis/redis_6380
           
Redis叢集實踐操作之Codis
拷貝redis的配置檔案redis.conf至相應目錄(注意redis的大版本和codis的大版本保持一緻,我這裡codis的版本是3.2.2,是以引用的redis版本也是3.X.X版本的,如果用redis4.X.X版本 會報錯)
Redis叢集實踐操作之Codis
修改Redis配置檔案(兩個配置檔案修改基本保持一緻,除了端口号不一緻)
Redis叢集實踐操作之Codis
Redis叢集實踐操作之Codis
Redis叢集實踐操作之Codis
啟動codis-server
Redis叢集實踐操作之Codis

Codis-dashboard配置啟動

(1). 手動建立配置檔案dashboard.toml

(2). 執行指令:

/usr/local/codis3.2.2-go1.8.5-linux/codis-dashboard --default-config | tee /usr/local/codis3.2.2-go1.8.5-linux/conf/codis/dashboard.toml
           
(3). 修改  dashboard.toml 配置檔案
Redis叢集實踐操作之Codis
(4)啟動dashboard指令:【注意替換自己的codis路徑】
nohup /usr/local/codis3.2.2-go1.8.5-linux/codis-dashboard --ncpu=4 --config=/usr/local/codis3.2.2-go1.8.5-linux/conf/codis/dashboard.toml  --log=/usr/local/codis3.2.2-go1.8.5-linux/logs/dashboard.log --log-level=WARN &
           
Redis叢集實踐操作之Codis
(5)關閉dashboard指令:
/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.75.131:18080 --shutdown
           
Redis叢集實踐操作之Codis
Codis-Proxy配置啟動

(1). 手動建立 proxy.toml 配置檔案

(2). 執行以下指令:

/usr/local/codis3.2.2-go1.8.5-linux/codis-proxy --default-config |tee /usr/local/codis3.2.2-go1.8.5-linux/conf/codis/proxy.toml
           
Redis叢集實踐操作之Codis
(3). 修改proxy配置檔案
Redis叢集實踐操作之Codis
(4)啟動proxy
nohup /usr/local/codis3.2.2-go1.8.5-linux/codis-proxy --ncpu=4 --config=/usr/local/codis3.2.2-go1.8.5-linux/conf/codis/proxy.toml  --log=/usr/local/codis3.2.2-go1.8.5-linux/logs/proxy.log --log-level=WARN &
           
Redis叢集實踐操作之Codis
(5)關聯proxy與dashboard
/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard=192.168.75.131:18080 --create-proxy -x192.168.75.131:11080
           
Redis叢集實踐操作之Codis

Codis-FE配置啟動

(1). 配置codis-fe

/usr/local/codis3.2.2-go1.8.5-linux/codis-admin --dashboard-list --zookeeper=192.168.75.131:2181 |tee /usr/local/codis3.2.2-go1.8.5-linux/conf/codis/codis.json
           
Redis叢集實踐操作之Codis
(2). 啟動codis-fe
nohup ./codis-fe --ncpu=2 --log=logs/fe.log --log-level=WARN --dashboard-list=conf/codis/codis.json --listen=192.168,75.131:8080 &
           
Redis叢集實踐操作之Codis

(3). Codis配置示範

通路管理位址

http://192.168.75.131:8080

Redis叢集實踐操作之Codis
至此整個Codis叢集環境就已經搭建完成了,大家可以盡情使用頁面簡單的操作和檢視Redis叢集狀态了。
最後還是要大家說以下,如果希望使用Java用戶端連接配接Codis叢集,隻要連接配接proxy即可,我們之前配置的proxy位址為:192.168.4.130:19000.