Redis在3.0版正式引入了集羣這個特性。Redis集羣是一個分佈式(distributed)、容錯(fault-tolerant)的 Redis內存K/V服務, 集羣可使用的功能是普通單機 Redis 所能使用的功能的一個子集(subset),好比Redis集羣並不支持處理多個keys的命令,由於這須要在不一樣的節點間移動數據,從而達不到像Redis那樣的性能,在高負載的狀況下可能會致使不可預料的錯誤。html
Redis集羣的幾個重要特徵:node
(1).Redis 集羣的分片特徵在於將鍵空間分拆了16384個槽位,每個節點負責其中一些槽位。linux
(2).Redis提供必定程度的可用性,能夠在某個節點宕機或者不可達的狀況下繼續處理命令.redis
(3).Redis 集羣中不存在中心(central)節點或者代理(proxy)節點, 集羣的其中一個主要設計目標是達到線性可擴展性(linear scalability)。ruby
經過官網http://redis.io/獲取穩定版源碼包下載地址;分佈式
$ wget http://download.redis.io/releases/redis-3.2.3.tar.gz $ tar xzf redis-3.2.3.tar.gz $ cd redis-3.2.3 $ make
1:可能新linux系統中未安裝gcc,經過以下命令安裝性能
apt-get install build-essential
2:在make時可能出現錯誤" error: jemalloc/jemalloc.h: No such file or directory",經過以下命令解決。ui
make MALLOC=libc
安裝Rubyspa
apt-get install ruby
安裝Redis.gemscala
gem intall redis
gem install /usr/downloads/redis-3.3.1.gem
按照端口號,依次建立對應文件夾,並配置redis.conf信息
啓動redis實例,查看redis進程
經過redis-trib.rb建立redis集羣,命令以下
./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
若要讓集羣正常運做至少須要三個主節點,咱們的環境中,每一個主節點附帶一個從節點,因此一共六個節點。
建立結果以下圖,會提示Can I set the above configuration? (type 'yes' to accept):
輸入yes ,而後出現以下圖 , [OK] All 16384 slots covered表示建立成功。
檢查集羣狀態,選中其中一個節點便可。
集羣 CLUSTER INFO 打印集羣的信息 CLUSTER NODES 列出集羣當前已知的全部節點(node),以及這些節點的相關信息。 節點 CLUSTER MEET <ip> <port> 將 ip 和 port 所指定的節點添加到集羣當中,讓它成爲集羣的一份子。 CLUSTER FORGET <node_id> 從集羣中移除 node_id 指定的節點。 CLUSTER REPLICATE <node_id> 將當前節點設置爲 node_id 指定的節點的從節點。 CLUSTER SAVECONFIG 將節點的配置文件保存到硬盤裏面。 槽(slot) CLUSTER ADDSLOTS <slot> [slot ...] 將一個或多個槽(slot)指派(assign)給當前節點。 CLUSTER DELSLOTS <slot> [slot ...] 移除一個或多個槽對當前節點的指派。 CLUSTER FLUSHSLOTS 移除指派給當前節點的全部槽,讓當前節點變成一個沒有指派任何槽的節點。 CLUSTER SETSLOT <slot> NODE <node_id> 將槽 slot 指派給 node_id 指定的節點,若是槽已經指派給另外一個節點,那麼先讓另外一個節點刪除該槽>,而後再進行指派。 CLUSTER SETSLOT <slot> MIGRATING <node_id> 將本節點的槽 slot 遷移到 node_id 指定的節點中。 CLUSTER SETSLOT <slot> IMPORTING <node_id> 從 node_id 指定的節點中導入槽 slot 到本節點。 CLUSTER SETSLOT <slot> STABLE 取消對槽 slot 的導入(import)或者遷移(migrate)。 鍵 CLUSTER KEYSLOT <key> 計算鍵 key 應該被放置在哪一個槽上。 CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的鍵值對數量。 CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 個 slot 槽中的鍵。
本文連接: 文章做者:雨~桐 文章出處:http://www.cnblogs.com/piscesLoveCc/ 若是您以爲閱讀本文對您有幫助,請點一右下角的「推薦」按鈕,您的「推薦」將是我最大的寫做動力!歡迎各位轉載,可是未經做者本人贊成,轉載文章以後必須在文章頁面明顯位置給出做者和原文鏈接,不然保留追究法律責任的權利。