1. 程式人生 > 資料庫 >redis cluster叢集的安裝和常用命令

redis cluster叢集的安裝和常用命令

redis叢集是有很多個redis一起工作,那麼就需要這個叢集不是那麼容易掛掉,所以呢,理論上就應該給叢集中的每個節點至少一個備用的redis服務。這個備用的redis稱為從節點(slave)。

1、叢集是如何判斷是否有某個節點掛掉

  首先要說的是,每一個節點都存有這個叢集所有主節點以及從節點的資訊。它們之間通過互相的ping-pong判斷是否節點可以連線上。如果有一半以上的節點去ping一個節點的時候沒有迴應,叢集就認為這個節點宕機了,然後去連線它的備用節點。

 

2、叢集進入fail狀態的必要條件

A、某個主節點和所有從節點全部掛掉,我們叢集就進入faill狀態。

B、如果叢集超過半數以上master掛掉,無論是否有slave,叢集進入fail狀態.

 C、如果叢集任意master掛掉,且當前master沒有slave.叢集進入fail狀態

 

redis cluster叢集採用無中心的方式,因此資料是分散的。建議部署建議不少於6個。

部署ip 1.1.1.1

修改redis配置

port 601
cluster-enabled yes
cluster-config-file nodes-1.conf
cluster-node-timeout 15000
requirepass "123456"
masterauth "123456"

logfile "1.log"

依次增加為

port 602
cluster-enabled yes
cluster-config-file nodes-2.conf

cluster-node-timeout 15000
requirepass "123456"
masterauth "123456"

logfile "2.log"

 

啟動命令

/redis-5.0.3/src/redis-server /redis-5.0.3/601/redis601.conf
/redis-5.0.3/src/redis-server /redis-5.0.3/602/redis602.conf
/redis-5.0.3/src/redis-server /redis-5.0.3/603/redis603.conf
/redis-5.0.3/src/redis-server /redis-5.0.3/604/redis604.conf
/redis-5.0.3/src/redis-server /redis-5.0.3/605/redis605.conf
/redis-5.0.3/src/redis-server /redis-5.0.3/606/redis606.conf

建立叢集的命令,代表是6個節點,三個master,三個salve。

redis-cli --cluster create 1.1.1.1:601 1.1.1.1:602 1.1.1.1:603 1.1.1.1:604 1.1.1.1:605 1.1.1.1:606 --cluster-replicas 1 -a 123456

如果只有三個節點,命令如下,這樣就沒有複製節點了。

redis-cli --cluster create 1.1.1.1:601 1.1.1.1:602 1.1.1.1:603 -a 123456

當節點擁有6個時,叢集是擁有自愈能力的,任意1個節點掛掉,是不影響叢集繼續提供服務的。而且服務重新啟動後,也可以自動恢復到叢集裡。

當節點為3個時,任意一個節點掛掉,叢集進入fail狀態,無法提供服務。在超時時間內,故障恢復,那臺redis是可以自動恢復到叢集中,並且叢集也可以恢復。但是如果時間很久,就要手動將故障節點重新加入叢集才可以。

下面是叢集新增節點和刪除節點的命令

#連線已存在的節點,新增一個node
redis-cli -p 603 -a 123456 cluster meet 1.1.1.1 601

#連線已存在的節點,刪除一個node,後面125啥啥是node id
redis-cli -p 603 -a 123456 cluster forget 125f023835ed691e4615a63ad7df61d7c30d1b0c

#檢視叢集狀態
redis-cli -p 603 -a 123456 cluster nodes