(一)什么是Redis Cluster?
Redis Cluster是Redis的分布式解決方案,在Redis 3.0版本正式推出的,有效解決了Redis分布式方面的需求,當遇到單機記憶體、并發、流量等瓶頸時,可以采用Cluster架構達到負載均衡的目的,
- 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節點,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/8779.html
標籤:NoSQL
