Codis3.2安裝及使用指南
阿新 • • 發佈:2018-11-08
文章目錄
1. 基礎環境搭建
1.1 安裝依賴
yum install
autoconf automake libtool -y yum install -y gcc glibc gcc-c++ make git
1.2 安裝Jdk1.8
- 下載jdk-8u152-linux-x64.tar.gz,上傳jdk到/opt資料夾;
- 解壓jdk到當前資料夾;
tar -zxf jdk-8u152-linux-x64.tar.gz
- 在/etc/profile檔案末尾加上以下程式碼;
JAVA_HOME=/opt/jdk1.8.0_152 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH
:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH
- 重新載入/etc/profile;
source /etc/profile
- 檢測是否安裝成功;
java -version
1.3 安裝go1.9.2
- 下載go1.9.2.linux-amd64.tar.gz,上傳go到/opt資料夾;
- 解壓go到當前資料夾;
tar -zxf go1.9.2.linux-amd64.tar.gz
- 在/etc/profile檔案末尾加上以下程式碼;
GOROOT=/opt/go GOPATH=/opt/gopath PATH=$PATH:$GOROOT/bin export PATH GOROOT GOPATH
- 重新載入/etc/profile;
source /etc/profile
- 檢測是否安裝成功;
go version
1.4 安裝zookeeper[單機]
- 下載zookeeper-3.4.6.tar.gz,上傳go到/opt資料夾;
- 解壓到當前資料夾;
tar -zxf zookeeper-3.4.6.tar.gz
- 啟動zookeeper【預設埠2181】;
cd /opt/zookeeper-3.4.6 ./bin/zkServer.sh conf/zoo.cfg
2. 安裝codis3.2
2.1 下載codis3.2原始碼
mkdir -p $GOPATH/src/github.com/CodisLabs cd $GOPATH/src/github.com/CodisLabs git clone https://github.com/CodisLabs/codis.git -b release3.2
2.2 編譯codis3.2
cd $GOPATH/src/github.com/CodisLabs/codis make make gotest
3 啟動coids
3.1 啟動dashboard
dashboard 是儀表盤,可以把其他服務繫結到監控儀表盤來進行服務管理及監控。
- 編輯配置檔案$GOPATH/src/github.com/CodisLabs/codis/config/dashboard.toml
coordinator_name = "zookeeper" coordinator_addr = "127.0.0.1:2181" product_name = "codis-demo" product_auth = "" admin_addr = "0.0.0.0:18080"
- 啟動[CPU核心數可以指定,按需配置]
cd $GOPATH/src/github.com/CodisLabs/codis mkdir log nohup ./bin/codis-dashboard --ncpu=1 --config=config/dashboard.toml --log=log/dashboard.log --log->level=WARN &
3.2 啟動proxy
proxy是對外提供redis服務的入口。
- 編輯配置檔案$GOPATH/src/github.com/CodisLabs/codis/config/proxy.toml
jodis_name = "zookeeper" jodis_addr = "127.0.0.1:2181" product_name = "codis-demo" product_auth = "" admin_addr = "0.0.0.0:11080" proto_type = "tcp4" proxy_addr = "0.0.0.0:19000"
- 啟動[CPU核心數可以指定,按需配置]
cd $GOPATH/src/github.com/CodisLabs/codis nohup ./bin/codis-proxy --ncpu=2 --config=config/proxy.toml --log=log/proxy.log --log-level=WARN &
- 關聯proxy到dashboard
有兩種方式:
3.1 命令列配置
cd $GOPATH/src/github.com/CodisLabs/codis ./bin/codis-admin --dashboard=100.100.10.85:18080 --create-proxy -x 100.100.10.85:11080
3.2 介面配置
3.3 啟動redis
注意:不可使用原生redis
- 建立4個redis配置檔案;
cd $GOPATH/src/github.com/CodisLabs/codis mkdir redis mkdir -pv redis/redis_638{1..4} cp config/redis.conf redis/redis_6381/ cp config/redis.conf redis/redis_6382/ cp config/redis.conf redis/redis_6383/ cp config/redis.conf redis/redis_6384/
- 配置redis配置檔案[逐個配置]
pidfile "/opt/gopath/src/github.com/CodisLabs/codis/redis/redis_6381/redis_6381.pid" daemonize yes protected-mode no port 6381 dbfilename "dump_6381.rdb" dir "/opt/gopath/src/github.com/CodisLabs/codis/redis/redis_6381" logfile "/opt/gopath/src/github.com/CodisLabs/codis/redis/redis_6381/redis_6381.log" maxmemory 1953125kb
- 啟動redis
cd $GOPATH/src/github.com/CodisLabs/codis ./bin/codis-server redis/redis_6381/redis.conf ./bin/codis-server redis/redis_6382/redis.conf ./bin/codis-server redis/redis_6383/redis.conf ./bin/codis-server redis/redis_6384/redis.conf
3.4 codis-ha
ha用來監控redis主從,在主掛了以後自動切換到從;
nohup ./bin/codis-ha --interval=5 --dashboard=127.0.0.1:18080 --log=log/ha.log --log-level=WARN &
3.5 啟動codis-fe
[頁面管理工具][CPU核心數可以指定,按需配置]
cd $GOPATH/src/github.com/CodisLabs/codis nohup ./bin/codis-fe --ncpu=1 --log=log/fe.log --log-level=WARN --zookeeper=127.0.0.1:2181 -->listen=0.0.0.0:80 &
4. 使用codis
4.1 使用redis客戶端連線coids
codis-proxy 對外提供redis服務,直接使用redis client連結codis-proxy即可,但是部分命令不能使用;
./src/redis-cli -h x.x.x.x -p 19000
4.2 頁面管理coids
頁面訪問 x.x.x.x:80/#codis-demo
4.2.1 group 與 server 管理
4.2.2 slot 管理
4.2.3 proxy 管理
5. 叢集環境搭建
5.1 zookeeper叢集
zookeeper叢集搭建不再詳述,如果使用zookeeper叢集,config/dashboard.toml , config/proxy.toml 中關於zookeeper的配置從單點變為叢集即可
dashboard.toml
coordinator_name = "zookeeper" coordinator_addr = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
proxy.toml
jodis_name = "zookeeper" jodis_addr = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"
5.2 codis叢集
多臺伺服器構建一個codis叢集,所有伺服器都需要安裝codis環境;按照上述步驟在每臺伺服器上安裝codis即可。
需要注意的是:
- 不需要/不可以啟動多個節點的服務的說明
- codis-dashboard 具有唯一性,不需要叢集,啟動一個例項即可;
- codis-fe啟動一個例項即可;
- codis-ha啟動一個例項即可;
- 可以啟動多個節點的服務的說明
- codis-proxy可以啟動多個節點,需要與dashboard進行關聯;
- codis-redis可以啟動多個節點,啟動後在頁面配置即可;
5.2.1 proxy 叢集
按照上述啟動步驟,啟動多個proxy後,在頁面或者命令列將proxy繫結到dashboard即可使用;
在配置上,所有proxy僅註冊到同一個zookeeper,即可使用;
每一個proxy單獨對外提供服務,推薦在多個proxy前面提供ha服務進行負載均衡;
5.2.2 codis-redis叢集
按照上述啟動步驟,啟動多個redis後,在頁面配置redis具體的分佈;
6. 注意事項
- codis-ha 開啟狀態下,codis無法新增新的節點;
- codis 不支援的命令
KEYS, MOVE, OBJECT, RENAME, RENAMENX, SORT, SCAN, BITOP,MSETNX, BLPOP, BRPOP, BRPOPLPUSH, PSUBSCRIBE,PUBLISH, PUNSUBSCRIBE, SUBSCRIBE, UNSUBSCRIBE, DISCARD, EXEC, MULTI, UNWATCH, WATCH, SCRIPT EXISTS, SCRIPT FLUSH, SCRIPT KILL, SCRIPT LOAD, AUTH, ECHO, SELECT, BGREWRITEAOF, BGSAVE, CLIENT KILL, CLIENT LIST, CONFIG GET, CONFIG SET, CONFIG RESETSTAT, DBSIZE, DEBUG OBJECT, DEBUG SEGFAULT, FLUSHALL, FLUSHDB, INFO, LASTSAVE, MONITOR, SAVE, SHUTDOWN, SLAVEOF, SLOWLOG, SYNC, TIME