具體用法可參考:https://cachecloud.github.iojava
1.下載CacheCloudnode
官網https://github.com/sohutv/cachecloudgit
下載cachecloud-master.zipgithub
解壓並移動cachecloud-master到/usr/local目錄web
2.在MySQL中建立庫並受權redis
導入初始數據數據庫
3.編輯/usr/local/cachecloud-master/cachecloud-open-web/src/main/swap/online.properties文件ruby
3.1在cachecloud根目錄下運行服務器
mvn clean compile install -Ponline
3.2建立/opt/cachecloud-web目錄,並拷貝相關文件app
mkdir -p /opt/cachecloud-web
cp cachecloud-open-web/target/cachecloud-open-web-1.0-SNAPSHOT.war /opt/cachecloud-web/
cp cachecloud-open-web/src/main/resources/cachecloud-web.conf /opt/cachecloud-web/
ln -s /opt/cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.war /etc/init.d/cachecloudweb
4.啓動cachecloud-web並經過http://IP:8585訪問,用戶名和密碼admin
/etc/init.d/cachecloudweb start
5.使用cachecloud-init.sh安裝redis和初始化,可根據需求修改腳本中redis的版本
6.在服務器上建立cachecloud SSH鏈接帳號,和系統配置管理頁面裏的用戶名和密碼保持一致便可
useradd cachecloud
passwd cachecloud
6.1點擊右上角管理後臺—>機器管理,添加機器
6.2點擊右上角導入應用
7.redis cluster安裝(要讓集羣正常工做至少須要3個主節點,在這裏咱們要建立6個redis節點,其中三個爲主節點,三個爲從節點)
172.17.20.127 | redis-6379/1680 |
172.17.20.128 | redis-6381/6382 |
172.17.20.129 | redis-6383/6384 |
Redis 集羣使用數據分片(sharding)而非一致性哈希(consistency hashing)來實現: 一個 Redis 集羣包含 16384 個哈希槽(hash slot), 數據庫中的每一個鍵都屬於這 16384 個哈希槽的其中一個, 集羣使用公式 CRC16(key) % 16384 來計算鍵 key 屬於哪一個槽, 其中 CRC16(key) 語句用於計算鍵 key 的 CRC16 校驗和 。集羣中的每一個節點負責處理一部分哈希槽。
下載編譯安裝redis
cp -pr redis redis-6380 #其餘相似按照端口號複製
修改redis.conf
daemonize yes
port 6379 #其餘配置改成6380/6381/6382/6383/6384pidfile /var/run/redis_6379.pid #其餘配置按端口號修改
cluster-enabled yes
cluster-config-file nodes-6379.conf # 其餘配置按端口號修改
cluster-node-timeout 15000
appendonly yes
建立配置文件軟鏈接並啓動redis
ln -s /opt/cachecloud/redis-6379/redis.conf /etc/redis-6379.conf #其餘按照相似配置
分別啓動集羣redis
8.安裝Redis 集羣須要的Ruby工具
yum install ruby rubygems
gem install redis
進入reids目錄下面運行
cd /opt/cachecloud/redis/src/
9.經常使用命令
查看集羣狀況
redis-trib.rb check ip:port #檢查集羣狀態
redis-cli -c -h ip -p port #使用-c進入集羣命令模式
redis-trib.rb rebalance ip:port --auto-weights #從新分配權重
增長、刪除集羣節點
redis-trib.rb add-node ip:port(新增節點) ip:port(現有效節點)
redis-trib.rb del-node ip:port id(目標節點的id) #刪除master節點以前首先要使用reshard移除master的所有slot
從新劃分slot
redis-trib.rb reshard ip:port
10.將master轉換爲salve
cluster replicate master-id #轉換前6380端必須沒有slots
11.模擬故障切換
殺死一個redis進程,觀察FailOver狀況
Redis集羣經過選舉方式進行容錯,保證一臺Server掛了還能跑,這個選舉是所有集羣超過半數以上的Master發現其餘Master掛了後,會將其餘對應的Slave節點升級成Master.
12.把redis cluster加入cachecloud