Redis邏輯集群創(chuàng )建
邏輯集群簡(jiǎn)介
Redis從3.0開(kāi)始引入集群模式的概念。
集群由多個(gè)節點(diǎn)(Node)組成,Redis的數據分布在這些節點(diǎn)中。集群中的節點(diǎn)分為主節點(diǎn)和從節點(diǎn):只有主節點(diǎn)負責讀寫(xiě)請求和集群信息的維護;從節點(diǎn)只進(jìn)行主節點(diǎn)數據和狀態(tài)信息的復制。
Redis集群模式的作用主要分為:
- 數據分區:數據分區(或稱(chēng)數據分片)是集群最核心的功能。
- 高可用:Redis集群模式中,每個(gè)主實(shí)例都會(huì )存在至少一個(gè)備實(shí)例,能夠在主實(shí)例故障之后,頂替主實(shí)例工作。整個(gè)集群不可用時(shí)間在30s以下。
邏輯集群的創(chuàng )建
下載Redis源代碼:
git clone git@github.com:redis/redis.git
cd redis
給Redis實(shí)例開(kāi)啟集群模式
使用下面命令啟動(dòng)6個(gè)redis實(shí)例:
cd /utils/create-cluster
./create-cluster start 6
創(chuàng )建完成之后,實(shí)例的cluster模式已經(jīng)被打開(kāi):
cluster的配置已經(jīng)配置:
默認情況下,只有當前節點(diǎn)自己
創(chuàng )建邏輯集群
執行下面命令創(chuàng )建邏輯集群:
./create-cluster create 6
創(chuàng )建完成之后登錄集群執行 cluster info
可以看到:
里面主要執行了:
redis-cli --cluster create 主實(shí)例 --cluster-replicas 備實(shí)例
create里面主要執行了下面兩個(gè)操作:
- 實(shí)例之間執行
cluster meet
,創(chuàng )建邏輯集群,比如cluster meet ip port
- 根據當前的實(shí)例分配主從關(guān)系。使用給主實(shí)例指定從實(shí)例:
CLUSTER REPLICATE id
,其中id就是從實(shí)例的唯一id。image3中的第一列值。 - 在主實(shí)例上執行
cluster setslot slot <slot>
分配槽位,將16384個(gè)槽位均分到3個(gè)主實(shí)例上
下面是創(chuàng )建了集群了配置信息:
文件里面含義如下:
- 第一列表示當前實(shí)例的唯一表示id,長(cháng)度固定。
- 第二列表示當前實(shí)例的ip和端口信息,格式:當前實(shí)例監聽(tīng)ip:監聽(tīng)端口@集群通信端口
- 第三列表示當前實(shí)例是主實(shí)例還是從實(shí)例,是否為當前登錄實(shí)例,包含myself的是當前配置文件對應的實(shí)例
- 第四列表示對應主實(shí)例的id,
-
表示當前實(shí)例是主實(shí)例 - 第五、六、七列分別是:已經(jīng)發(fā)送的ping大小,接收到的pong的大小,當前實(shí)例的
Epoch
- 第八列是當前實(shí)例是否可以連通整個(gè)集群:
connected
表示連通,disconnected
表示連不通 - 第九列以及后面的列表示當前實(shí)例所對應的槽位,比如
0-1000
表示當前實(shí)例包含0-1000的槽位

0 評論