redis集群的搭建


redis集群的搭建

一: redis集群中:存在通過投票刪除錯誤的節點(有半數以上投票通過,可確定被投票的節點已經錯誤fail)

 

架構細節:

(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節點需要進行備份,因此redis集群需要6台服務器。

偽分布式:可以再一台服務器上面同時運行6個redis實例,模擬完全分布式集群。需要修改每個redis實例中的端口號,同時設置cluster-enabled的值為yes

三:偽分布式redis集群的搭建過成

1.由於使用的是ruby腳本搭建的集群,啟動需要ruby,因此需要ruby環境的支持。

下載ruby包

yum install ruby

yum install rubygems

2.安裝腳本運行時使用的包

將 redis-3.0.0.gem文件導入虛擬機中

使用命令gem install redis-3.0.0.gem進行安裝

 

3.進入redis的源文件目錄(解壓后的目錄)下面的src目錄,查找*.rb

將該文件拷貝到集群下面的文件中

cp /redis-3.0.0/src/redis-trib.rb /use/local/redis_cluster/

redis_cluster目錄需要自己創建,作為搭建集群的主目錄

4.在創建的redis_cluster目錄下,拷貝6份redis的啟動文件(bin目錄)

cp /usr/lcoal/redis/bin  /redis_cluster/redis01 -r

 

5.修改每一個redis下的redis.conf配置文件,設置端口號為7001-7006,同時將cluster-enabled的設置為yes,表示啟用集群服務

6.創建啟動腳本文件,將啟動redis的命令放置到該腳本文件中

7.為啟動腳本 start-redis_cluster.sh設置可執行權限

chmod u+x start-redis_cluster.sh 表示為主用戶啟用可執行的權限,執行成功后,腳本文件會變成綠色

8.在redis-cluster下運行啟動的腳本文件

./start-redis_cluster.sh  該命令執行后會在后台啟動6個redis實例

9.通過ps aux|grep redis 可以查看各個redis實例啟動信息(包括端口號,進程號)

10.使用ruby腳本搭建redis集群

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

11.查看是否成功啟動(如果出現這種錯誤,將redis.conf中指定位置的文件刪除重新啟動即可)

12.成功啟動的標志

 

 13.創建批處理文件用來關閉集群中的redis實例

 

14.至此redis的偽分布式集群搭建成功(完全分布式的搭建過程和該步驟相同)

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM