2021 3 6Redis cluster集群搭建

2021-10-21 06:34:40 字數 2840 閱讀 4265

在哨兵模式中,仍然只有乙個master節點。當併發寫請求較大時,哨兵模式並不能緩解寫壓力。

我們知道只有主節點才具有寫能力,那如果在乙個集群中,能夠配置多個主節點,是不是就可以緩解寫壓力了呢?

答:是的。這個就是redis-cluster集群模式。

(1)由多個redis伺服器組成的分布式網路服務集群;

(2)集群之中有多個master主節點,每乙個主節點都可讀可寫;

(3)節點之間會互相通訊,兩兩相連;

(4)redis集群無中心節點。

1.3        集群節點複製 

在redis-cluster集群中,可以給每乙個主節點新增從節點,主節點和從節點直接遵循主從模型的特性。

當使用者需要處理更多讀請求的時候,新增從節點可以擴充套件系統的讀效能。

redis-cluster分片策略,是用來解決key儲存位置的。

集群將整個資料庫分為16384個槽位slot,所有key-value資料都儲存在這些slot中的某乙個上。乙個slot槽位可以存放多個資料,key的槽位計算公式為:slot_number=crc16(key)%16384,其中crc16為16位的迴圈冗餘校驗和函式。

集群中的每個主節點都可以處理0個至16383個槽,當16384個槽都有某個節點在負責處理時,集群進入上線狀態,並開始處理客戶端傳送的資料命令請求。

1.6        集群redirect轉向 

由於redis集群無中心節點,請求會隨機發給任意主節點;

主節點只會處理自己負責槽位的命令請求,其它槽位的命令請求,該主節點會返回客戶端乙個轉向錯誤;

客戶端根據錯誤中包含的位址和埠重新向正確的負責的主節點發起命令請求。

1.7        集群搭建 

(1)安裝ruby環境

redis集群管理工具redis-trib.rb依賴ruby環境,首先需要安裝ruby環境:

yum -y install ruby

yum -y install rubygems

(2)安裝ruby和redis的介面程式

拷貝redis-3.0.0.gem至/usr/local下,執行安裝:

gem install   redis

(1)redis集群最少需要6個節點,可以分布在一台或者多台主機上。

本教案在一台主機上建立偽分布式集群,不同的埠表示不同的redis節點,如下:

主節點:192.168.56.3:7001 192.168.56.3:7002 192.168.56.3:7003

從節點:192.168.56.3:7004 192.168.56.3:7005 192.168.56.3:7006

(2)在/usr/local/redis下建立redis-cluster目錄,其下建立7001、7002。。7006目錄,如下:

(3)將redis解壓路徑下的配置檔案redis.conf,依次拷貝到每個700x目錄內,並修改每個700x目錄下的redis.conf配置檔案: 

必選配置:

port 700x

bind 192.168.23.3   

cluster-enabled yes

建議配置:

daemonized  yes

logfile  /usr/local/redis/redis-cluster/700x/node.log

依次以700x下的redis.conf,啟動redis節點。(必須指定redis.conf檔案)

redis-server  /usr/local/redis/redis-cluster/700x/redis.conf

進入到redis原始碼存放目錄redis/redis-4.10.3/src下,執行redis-trib.rb,此指令碼是ruby指令碼,它依賴ruby環境。

./redis-trib.rb create --replicas 1 192.168.159.10:7001 192.168.159.10:7002 192.168.159.10:7003 192.168.159.10:7004 192.168.159.10:7005  192.168.159.10:7006

建立過程如下:

1.7.5       查詢集群資訊 

集群建立成功登陸任意redis結點查詢集群中的節點情況。

說明:./redis-cli -c -h 192.168.56.3 -p 7001,其中:

redis集群redis cluster搭建

這是來自redis官網的一段介紹,大概意思就是 redis是乙個開源 bsd許可 的記憶體資料結構儲存,用作資料庫 快取和訊息 它支援諸如字串 雜湊 列表 集 帶範圍查詢的排序集 位圖 hyperloglogs 帶半徑查詢和流的地理空間索引等資料結構。redis具有內建的複製 lua指令碼 lru清...

redis集群redis cluster搭建

這是來自redis官網的一段介紹,大概意思就是 redis是乙個開源 bsd許可 的記憶體資料結構儲存,用作資料庫 快取和訊息 它支援諸如字串 雜湊 列表 集 帶範圍查詢的排序集 位圖 hyperloglogs 帶半徑查詢和流的地理空間索引等資料結構。redis具有內建的複製 lua指令碼 lru清...

Redis Cluster集群原理

一 redis cluster 官方推薦的 redis 集群解決方案,優點在於去中心化,去中介軟體,也就是說,集群中的每個節點都是平等的關係,都是對等的,每個節點都儲存各自的資料和整個集群的狀態。每個節點都和其他所有節點連線,而且這些連線保持活躍,這樣就保證了我們只需要連線集群中的任意乙個節點,就可...