重修Redis二:僞集羣環境搭建

先來回顧下單機版的安裝流程:

安裝基礎環境: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編譯命令

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
cd redis-3.0.7
make
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

4..安裝

make PREFIX=/usr/local/redis install
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

5.  複製配置文件,修改port爲7001

cp redis.conf /usr/local/redis
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

6。啓動服務

修改配置文件redis.conf 啓動方式爲後端:

daemonize yes
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

在當前目錄下啓動命令 

./bin/redis-server ./redis.conf 
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

步驟三:啓動驗證:

查看端口:

ps -ef|grep redis
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 連接客戶端:

./bin/redis-cli -h 192.168.71.101 -p 7001
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

步驟四:停止服務

強制停止:

kill -9 pid
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

正確的停止方式:

./bin/redis-cli shutdown
./bin/redis-cli  -p 7001 shutdown    #指定端口
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

集羣搭建(cluster模式,多主多從)

步驟一:基礎環境搭建

1. 在usr/local目錄下新建redis-cluster目錄,用於存放集羣節點

mkdir redis-cluster
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2.把redis目錄下的bin目錄下的所有文件複製到/usr/local/redis-cluster/redis01目錄下,複製01-06端口爲7001-7006

cp -r redis/bin/ redis-cluster/redis01
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 3.修改redis.conf 中端口

cd redis-3.0.7
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

部署二:安裝Ruby環境

需要使用官方提供的 Ruby 腳本,安裝 Ruby 環境,(注意安裝 ruby 環境前,先 " yum update "一下,確保服務器上的工具包都是最新的),

1.分別輸入以下命令進行安裝:

yum install ruby 
yum install rubygems
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

安裝結果如下圖:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2. 安裝:redis-3.0.7.gem與redis版本最好保持一致

gem install redis-3.0.7.gem
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

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
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

集羣查看命令補充:

//集羣(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 槽中的鍵。
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 查看節點狀態:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 檢查節點狀態:

./redis-trib.rb check 192.168.71.101:7001
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 錯誤集錦:

重新搭建集羣錯誤:

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.
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

在重新創建集羣的時候會出現這樣的錯誤,一般停掉所以節點,刪除每個節點的dump.rdb和nodes.conf重新執行配置集羣命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章