玩轉Redis集羣(上)

這是redis集羣介紹的上篇,主要是關於Redis集羣的搭建。後續將爲你們介紹Redis集羣的經常使用命令、Java操做Redis集羣、以及與Spring/Spring MVC的整合等知識。

Redis集羣搭建

要想搭建一個最簡單的Redis集羣,那麼至少須要6個節點:3個Master和3個Slave。爲何須要3個Master呢?若是你瞭解過Hadoop/Storm/Zookeeper這些的話,你就會明白通常分佈式要求基數個節點,這樣便於選舉(少數服從多數的原則)。node

Redis集羣模型

這裏,我將採用一種「偷懶」的方式,在一個Linux虛擬機上搭建6個節點的Redis集羣。(由於開啓6個Linux虛擬機,個人電腦徹底扛不住)redis

實際上,思路很簡單,我將在一臺節點上開啓6個Redis實例,而且這6個Redis各自有本身的端口。這樣的話,至關於模擬出了6臺機器了。而後在以這6個實例組建Redis集羣就能夠了。ruby

第一步:爲這6個實例建立好各自存放的目錄分佈式

想想,爲何要這樣作呢?

第二步:既然是要啓動6個Redis實例,天然須要準備各自的配置文件oop

拷貝redis.conf 6份


6個Redis實例的具體配置

具體來講,須要注意下:因爲在一臺機器(192.168.99.121)上,所以每一個實例應該有不一樣的端口;同時,每一個實例顯然會有本身的存放數據的地方;開啓AOF模式;開啓集羣配置;開啓後臺模式;3d

第三步:實際上,Redis集羣的操做在後文你能夠看到是經過Ruby腳原本完成的,所以咱們須要安裝Ruby相關的RPM包,以及Redis和Ruby的接口包。orm

yum install ruby
yum install rubygems
gem install redis

第四步:讓Redis集羣工做起來!cdn

啓動6個Redis實例

接下來,咱們要經過Ruby腳原本建立集羣了。blog

redis-trib.rb是操做Redis集羣的腳本

[root@mydream121 bin]# ./redis-trib.rb create --replicas 1 192.168.99.121:8001 192.168.99.121:8002 192.168.99.121:8003 192.168.99.121:8004 192.168.99.121:8005 192.168.99.121:8006接口

create redis cluster
redis cluster info

首先,咱們來看一下建立集羣命令中 --replicas 1,這個表明什麼意思呢?1其實表明的是一個比例,就是主節點數/從節點數的比例。那麼想想,在建立集羣的時候,哪些節點是主節點呢?哪些節點是從節點呢?答案是將按照命令中IP:PORT的順序,先是3個主節點,而後是3個從節點。這一點能夠經過上面的2張圖片印證。

其次,注意到圖中slot的概念。slot對於Redis集羣而言,就是一個存放數據的地方,就是一個槽。對於每個Master而言,會存在一個slot的範圍,而Slave則沒有。在Redis集羣中,依然是Master能夠讀、寫,而Slave只讀。數據的寫入,其實是分佈的存儲在slot中,這和之前1.X的主從模式是不同的(主從模式下Master/Slave數據存儲是徹底一致的),由於Redis集羣中3臺Master的數據存儲並不同。這一點將在後續的實驗中獲得驗證。

第五步:驗證Redis集羣搭建是否成功

cluster info/cluster nodes
搭建起來的Redis集羣


到這裏,Redis集羣的搭建就完畢了,See U~

相關文章
相關標籤/搜索