Redis後臺監控與管理CacheCloud

CacheCloud環境需求

  • Java 7
  • Maven 3
  • MySQL
  • Redis 3

具體用法可參考: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/6384
pidfile /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/

  1. redis-trib.rb的create子命令構建
  2. --replicas 1則指定了爲Redis Cluster中的每一個Master節點配備1個Slave節點
  3. 節點角色由順序決定,先是master以後是slave

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

相關文章
相關標籤/搜索