1. 程式人生 > 資訊 >美國購買 iPhone SE 3 5G 更簡單:運營商控制權下降,蘋果上升

美國購買 iPhone SE 3 5G 更簡單:運營商控制權下降,蘋果上升

Redis叢集

是什麼

Redis叢集實現了對Redis的水平擴容,即啟動N個redis節點,將整個資料庫分佈儲存在這N個節點中,每個節點儲存總資料的1/N.

Redis叢集通過分割槽來提供一定程度的可用性:即使叢集中有一部分節點失效或者無法進行通訊,叢集也可以繼續處理命令請求

 

實現步驟

  1. 刪除持久化資料 將rdb,aof檔案都刪除掉

  2. 製作6個例項,6379,6382,6381,6389,6390,6391 (叢集搭建至少要3個主節點)

  3. 配置基本資訊

    include /myredis/redis.conf pidfile "/var/run/redis_6379.conf" port 6379 dbfilename "dump6379.rdb" cluster-enabled yes 開啟叢集模式 cluster-config-file nodes-6379.conf 設定節點配置檔名 cluster-node-timeout 15000

    設定節點失聯時間,超過改時間(毫秒),叢集自動進行主從切換

  4. 拷貝多份配置檔案,並進行相關修改

  5. 啟動6個redis服務

  1. 將6個節點合成一個叢集,組合之前,請確保所有redis例項啟動後,nodes-xxx.conf檔案都生成正常

    注:低版本要先需要安裝ruby,再使用以下命令進行合成

    ./redis-trib.rb create --replicas 1 192.168.43.55:6379 192.168.43.55:6380 192.168.43.55:6381 192.168.43.55:6389 192.168.43.55:6390 192.168.43.55:6391

    高版本,在/redis x.x.x/src中的redis-cli內建了ruby環境

    redis-cli --cluster create --cluster-replicas 1 192.168.43.55:6379 192.168.43.55:6380 192.168.43.55:6381 192.168.43.55:6389 192.168.43.55:6390 192.168.43.55:6391

  1. 使用redis-cli -c -p 6379連線到一臺主機

  2. 使用 cluster nodes檢視叢集資訊

     

     

什麼是slot

一個Redis叢集中包含16384個插槽(hashsolt),資料庫中的每個鍵都屬於這16384個插槽的其中一個。

舉個例子,如果一個叢集有三個主節點:

節點A負責處理0號至5460號插槽

節點B負責處理5461號至10922號插槽

節點C負責處理10923號至16383號插槽

 

故障恢復

如果某一段插槽的主節點down掉,那麼它的從節點升級為主節點,待主節點重新連線上後,它則變為從節點。

如果某一段插槽的主節點和從節點一起down,則根據配置決定

  • cluster-require-full-coverage為yes,那麼,整個叢集都down掉

  • cluster-require-full-coverage為no,那麼,該段插槽資料都不能使用,也無法儲存

 

優勢

  • 實現擴容

  • 分攤壓力

  • 無中心化配置相對簡單

劣勢

  • 多鍵操作是不被支援的

  • 多鍵的Redis事務是不被支援的