redis學習筆記(5)

Redis Cluster:

1.集權解決的問題(併發量、數據量)

2.HASH數據分佈方式

2.1、節點取餘(客戶端分片:哈希-取餘;節點伸縮:數據節點關係變化,導致數據遷移;遷移數量和添加的節點數量有關:建議翻倍擴容)

2.2、一致性哈希(客戶端分片:哈希-順時針[優化取餘];節點伸縮:隻影響臨近節點,但是還是有數據遷移;翻倍伸縮:保證最小遷移數據和負載均衡)

2.3、虛擬槽分區(預設虛擬槽:每個槽映射一個數據子集,一般比節點數據大;良好的哈希函數:例如CRC16;服務端管理節點、槽、數據:例如Redis Cluster)

3.Redis Cluster特性(複製、高可用、分片:多個節點進行讀寫)

4.Redis Cluster架構(節點:各個redis節點、meet:節點之間通訊判斷、指派槽:根據hash計算得到一定值對應一定的槽、複製)

5.Redis Cluster安裝

5.1、原生安裝:

5.1.1 單節點配置安裝

5.1.2 meet操作

5.1.3 分配槽

5.1.4 主從配置

5.2、Ruby環境安裝

5.2.1 下載、編譯、安裝Ruby

5.2.2 安裝rubygem redis

5.2.3 安裝redis-trib.rb

5.3、安裝方式對比

1 原聲命令安裝(理解redis cluster、生產環境不適用[步驟繁雜,容易出錯])

2 官方工具安裝(高校、準確)

3 其它(可視化部署········)

6.集羣伸縮原理(槽和數據在節點之間的移動)

7.集羣擴容

準備新節點-->加入集羣-->遷移槽和數據

7.1、新節點(集羣模式、配置和其它節點統一、啓動後是孤立節點)

7.2、加入集羣(cluster meet 127.0.0.1 7000)、進入節點客戶端查看(cluster nodes)、作用(爲它遷移槽和數據實現擴容、作爲從節點負責故障轉移)

7.3、遷移槽和數據

7.3.1 遷移槽計劃(平均槽數量)

7.3.2 遷移數據

A. 對目標節點發送[cluster setslot {slot} importing {sourceNodeId}]命令,讓目標節點準備導入槽的數據

B.對源節點發送[cluster setslot {slot} migrating {targetNodeId}]命令,讓源節點準備遷出槽的數據

C.源節點循環執行cluster getkeysinslot {slot} (count)命令,每次獲取count個屬於槽的鍵

D.在源節點上執行migrate {gargetIp} {targetPort} key 0 {timeout} 命令把指定key遷移

E.重複執行步驟C-D直到槽下所有的鍵數據遷移到目標節點

F.向集羣內所有主節點發送cluster setslot {slot} node {targetNodeId}命令,通知槽分配給目標節點

7.3.3 添加從節點

***********未學篇章*************

第10章 深入Redis Cluster

第11章 緩存設計與優化

第12章 Redis雲平臺CacheCloud

第14章 增補:Redis布隆過濾器

第15章 Redis開發規範

第16章 內存管理

第17章 開發運維常見坑

 

 

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