Redis-cluster集羣搭建(centos6.4)

redis-cluster架構圖:

redis-cluster投票:容錯

半數以上節點投票認爲某個節點掛了,這個節點就掛了,整個集羣宕機。

架構細節:

(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進制協議優化傳輸速度和帶寬.

(2)節點的fail是通過集羣中超過半數的節點檢測失效時才生效.

(3)客戶端與redis節點直連,不需要中間proxy層.客戶端不需要連接集羣所有節點,連接集羣中任何一個可用節點即可

(4)redis-cluster把所有的物理節點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value

Redis 集羣中內置了 16384 個哈希槽,當需要在 Redis 集羣中放置一個 key-value 時,redis 先對key 使用 crc16 算法算出一個結果,然後把結果對 16384 求餘數,這樣每個

key 都會對應一個編號在 0-16383 之間的哈希槽,redis 會根據節點數量大致均等的將哈希槽映射到不同的節點

Redis集羣的搭建:

Redis集羣中至少應該有三個節點。要保證集羣的高可用,需要每個節點有一個備份機。

Redis集羣至少需要6臺服務器。

需要修改redis的端口號7001-7006

注意:搭建前要保證redis中沒有數據

集羣搭建環境:

使用ruby腳本搭建集羣。需要ruby的運行環境。

安裝ruby

yum install ruby

yum install rubygems

安裝ruby腳本運行使用的包redis-3.0.0.gem自行下載

[root@localhost ~]# gem install redis-3.0.0.gem

[root@localhost ~]# cd redis-3.0.0/src

[root@localhost src]# ll *.rb

-rwxrwxr-x. 1 root root 48141 Apr 1 2015 redis-trib.rb

搭建步驟:

需要6臺redis服務器

需要6個redis實例。

需要運行在不同的端7001-7006

第一步:創建6個redis實例,需要修改redis.conf配置文件,需要把cluster-enabled yes前的註釋去掉。

每個實例運行在不同的端口port(默認是6379)修改成7001-7006。(每個實例都是一樣的可以參考文章redis安裝)

第二步:啓動每個redis實例。

第三步:使用ruby腳本搭建集羣。(自己的服務器+端口號)

./redis-trib.rb create --replicas 1 192.168.00.000:7001 192.168.00.000:7002 192.168.00.000:7003 192.000.00.000:7004 192.168.00.000:7005 192.168.00.000:7006
中間會詢問:yes就行。
Can I set the above configuration? (type 'yes' to accept): yes

注意:關閉防火牆

集羣的使用方法:

連接任何一個redis就可以鏈接到集羣

redis01/redis-cli -p 7002 -c

現在可以添加數據測試。

下一篇:redis在項目使用方法。單機版,和集羣版。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章