教你輕鬆玩轉Redis集羣

這是redis集群介紹的上篇,主要是關於Redis集群的搭建。後續將為大家介紹Redis集群的常用命令、Java操作Redis集群、以及與Spring/Spring MVC的整合等知識。

Redis集群搭建

要想搭建一個最簡單的Redis集群,那麼至少需要6個節點:3個Master和3個Slave。為什麼需要3個Master呢?如果你瞭解過Hadoop/Storm/Zookeeper這些的話,你就會明白一般分佈式要求基數個節點,這樣便於選舉(少數服從多數的原則)。

教你輕鬆玩轉Redis集群

Redis集群模型

這裡,我將採用一種“偷懶”的方式,在一個Linux虛擬機上搭建6個節點的Redis集群。(因為開啟6個Linux虛擬機,我的電腦完全扛不住)

實際上,思路很簡單,我將在一臺節點上開啟6個Redis實例,並且這6個Redis各自有自己的端口。這樣的話,相當於模擬出了6臺機器了。然後在以這6個實例組建Redis集群就可以了。

第一步:為這6個實例創建好各自存放的目錄

教你輕鬆玩轉Redis集群

想一想,為什麼要這樣做呢?

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

教你輕鬆玩轉Redis集群

拷貝redis.conf 6份

教你輕鬆玩轉Redis集群

6個Redis實例的具體配置

具體來說,需要注意下:由於在一臺機器(192.168.99.121)上,因此每個實例應該有不同的端口;同時,每個實例顯然會有自己的存放數據的地方;開啟AOF模式;開啟集群配置;開啟後臺模式;

第三步:實際上,Redis集群的操作在後文你可以看到是通過Ruby腳本來完成的,因此我們需要安裝Ruby相關的RPM包,以及Redis和Ruby的接口包。

教你輕鬆玩轉Redis集群

yum install ruby

教你輕鬆玩轉Redis集群

yum install rubygems

教你輕鬆玩轉Redis集群

gem install redis

第四步:讓Redis集群工作起來!

教你輕鬆玩轉Redis集群

啟動6個Redis實例

接下來,我們要通過Ruby腳本來創建集群了。

教你輕鬆玩轉Redis集群

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

教你輕鬆玩轉Redis集群

create redis cluster

教你輕鬆玩轉Redis集群

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集群搭建是否成功

教你輕鬆玩轉Redis集群

cluster info/cluster nodes

教你輕鬆玩轉Redis集群

搭建起來的Redis集群

到這裡,Redis集群的搭建就完畢了,See U

原文:jianshu.com/p/dbc62ed27f03


分享到:


相關文章: