【趙強老師】什麼是Redis Cluster

(一)什麼是Redis Cluster?

Redis Cluster是Redis的分佈式解決方案,在Redis 3.0版本正式推出的,有效解決了Redis分佈式方面的需求。當遇到單機內存、併發、流量等瓶頸時,能夠採用Cluster架構達到負載均衡的目的。redis

  • Redis使用中遇到的瓶頸

咱們平常在對於redis的使用中,常常會遇到一些問題:
(1)高可用問題,如何保證redis的持續高可用性。
(2)容量問題,單實例redis內存沒法無限擴充,達到32G後就進入了64位世界,性能降低。
(3)併發性能問題,redis號稱單實例10萬併發,但也是有盡頭的。數據庫

  • Redis-Cluster的優點 

(1)官方推薦,毋庸置疑。
(2)去中心化,集羣最大可增長1000個節點,性能隨節點增長而線性擴展。
(3)管理方便,後續可自行增長或摘除節點,移動分槽等等。
(4)簡單,易上手。架構

(二)數據分佈理論與Redis的數據分區

  • 分佈式數據庫首要解決把整個數據集按照分區規則映射到多個節點的問題,即把數據集劃分到多個節點上,每一個節點負責整個數據的一個子集。常見的分區規則有哈希分區和順序分區。Redis Cluster採用哈希分區規則。
  • 虛擬槽分區巧妙地使用了哈希空間,使用分散度良好的哈希函數把全部的數據映射到一個固定範圍內的整數集合,整數定義爲槽(slot)。好比:Redis Cluster槽的範圍是0 ~ 16383。槽是集羣內數據管理和遷移的基本單位。
  • Redis Cluster採用虛擬槽分區,全部的鍵根據哈希函數映射到0 ~ 16383,計算公式:slot = CRC16(key)&16383。每個節點負責維護一部分槽以及槽所映射的鍵值數據。

(三)Redis Cluster的體系架構

咱們以6個節點爲例,來介紹Redis Cluster的體系架構,以下圖所示。其中:三個爲master節點,另外三個爲slave節點。併發

相關文章
相關標籤/搜索