先來回顧下單機版的安裝流程:
安裝基礎環境:Vm12+Centos6.5+CRT7.5
步驟一:下載安裝C++編譯環境
yum install gcc-c++
步驟二:安裝
1.從官網下載redsi版本,通過FTP工具上傳到Linux環境下(版本:redis-3.0.7.tar.gz)
/usr/local/
2..解壓文件:
tar -zxvf redis-3.0.7.tar.gz
3..進入目錄redis-3.0.7,執行make編譯命令
cd redis-3.0.7
make
4..安裝
make PREFIX=/usr/local/redis install
5. 複製配置文件,修改port爲7001
cp redis.conf /usr/local/redis
6。啓動服務
修改配置文件redis.conf 啓動方式爲後端:
daemonize yes
在當前目錄下啓動命令
./bin/redis-server ./redis.conf
步驟三:啓動驗證:
查看端口:
ps -ef|grep redis
連接客戶端:
./bin/redis-cli -h 192.168.71.101 -p 7001
步驟四:停止服務
強制停止:
kill -9 pid
正確的停止方式:
./bin/redis-cli shutdown
./bin/redis-cli -p 7001 shutdown #指定端口
集羣搭建(cluster模式,多主多從)
步驟一:基礎環境搭建
1. 在usr/local目錄下新建redis-cluster目錄,用於存放集羣節點
mkdir redis-cluster
2.把redis目錄下的bin目錄下的所有文件複製到/usr/local/redis-cluster/redis01目錄下,複製01-06端口爲7001-7006
cp -r redis/bin/ redis-cluster/redis01
3.修改redis.conf 中端口
cd redis-3.0.7
部署二:安裝Ruby環境
需要使用官方提供的 Ruby 腳本,安裝 Ruby 環境,(注意安裝 ruby 環境前,先 " yum update "一下,確保服務器上的工具包都是最新的),
1.分別輸入以下命令進行安裝:
yum install ruby
yum install rubygems
安裝結果如下圖:
2. 安裝:redis-3.0.7.gem與redis版本最好保持一致
gem install redis-3.0.7.gem
3.創建集羣:前三個爲主節點,後三個從節點,選項 --replicas 1 表示集羣中的每個主節點創建一個從節點。複製集羣啓動腳本到/usr/local/redis-cluster/(在redis解壓文件的源代碼裏,即redis/src目錄下的redis-trib.rb文件)
./redis-trib.rb create --replicas 1 192.168.71.101:7001 192.168.71.101:7002 192.168.71.101:7003 192.168.71.101:7004 192.168.71.101:7005 192.168.71.101:7006
集羣查看命令補充:
//集羣(cluster)
CLUSTER INFO 打印集羣的信息
CLUSTER NODES 列出集羣當前已知的所有節點(node),以及這些節點的相關信息。
//節點(node)
CLUSTER MEET 將 ip 和 port 所指定的節點添加到集羣當中,讓它成爲集羣的一份子。
CLUSTER FORGET 從集羣中移除 node_id 指定的節點。
CLUSTER REPLICATE 將當前節點設置爲 node_id 指定的節點的從節點。
CLUSTER SAVECONFIG 將節點的配置文件保存到硬盤裏面。
//槽(slot)
CLUSTER ADDSLOTS [slot …] 將一個或多個槽(slot)指派(assign)給當前節點。
CLUSTER DELSLOTS [slot …] 移除一個或多個槽對當前節點的指派。
CLUSTER FLUSHSLOTS 移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點。
CLUSTER SETSLOT NODE 將槽 slot 指派給 node_id 指定的節點,如果槽已經指派給另一個節點,那麼先讓另一個節點刪除該槽>,然後再進行指派。
CLUSTER SETSLOT MIGRATING 將本節點的槽 slot 遷移到 node_id 指定的節點中。
CLUSTER SETSLOT IMPORTING 從 node_id 指定的節點中導入槽 slot 到本節點。
CLUSTER SETSLOT STABLE 取消對槽 slot 的導入(import)或者遷移(migrate)。
//鍵 (key)
CLUSTER KEYSLOT 計算鍵 key 應該被放置在哪個槽上。
CLUSTER COUNTKEYSINSLOT 返回槽 slot 目前包含的鍵值對數量。
CLUSTER GETKEYSINSLOT 返回 count 個 slot 槽中的鍵。
查看節點狀態:
檢查節點狀態:
./redis-trib.rb check 192.168.71.101:7001
錯誤集錦:
重新搭建集羣錯誤:
ERR] Node 192.168.71.101:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
在重新創建集羣的時候會出現這樣的錯誤,一般停掉所以節點,刪除每個節點的dump.rdb和nodes.conf重新執行配置集羣命令。