Redis Cluster 一 基礎介紹

2021-10-18 05:05:08 字數 769 閱讀 3750

rediscluster是redis推出的官方集群解決方案

在此之前,先了解redis的集群演變過程(不做實現,只分析)

缺點:如果主redis伺服器宕機後,從伺服器不能晉公升為主伺服器,從而導致redis服務失效

在主從複製之間引入哨兵

哨兵機制可以通過raft選舉將從伺服器晉公升為主伺服器,並通知到客戶端。

缺點:實現哨兵模式的配置繁瑣

缺點:健壯性差,效能相對較差(因為不是直接到redis庫,而是通過**)

實現了高可用和高併發,通過多個主redis實現高併發(分槽存放),通過主從選舉保證高可用

架構細節:

1)所有的redis主節點彼此互聯(通過ping-pong機制--傳送回應機制),內部使用二進位制協議優化傳輸速度和頻寬

2)判斷主節點宕機--通過集群半數的結點監測失效才確定主節點宕機(因此主節點一般是單數的)

3)客戶端與主節點直接連線,不需要通過**消耗效能,客戶端不需要連線所有的主節點,連線任意乙個即可(通過crc16演算法,算出屬於哪個槽就會分配到哪個主節點庫中)

4)redis將所有物理結點對映到[0,16383]slot上,cluster負責維護nodeslotvalue

tips:為什麼是16384,看下大佬的解答 

知識積累 (一) Redis Cluster原理

問題 配置了多個客戶端,那麼呼叫setex 方法的時候,那麼資料快取到哪個伺服器呢?實際上redis集群中內建了16384個雜湊槽,搭建集群時,每台伺服器都分配了固定數量的雜湊槽。當需要存資料時,redis對key進行出crc16演算法運算,然後對運算結果取餘,把資料對映到不同的redis伺服器。一...

CygWin安裝RedisCluster指南

安裝前確認磁碟有6g以上的磁碟容量,安裝時雙擊setup x86 64.exe,基本按照預設設定安裝就行,也可自己指定安裝路徑等,3 deps hiredis net.c中注釋掉 並在 include sds.h 之後追加 ifdef cygwin define tcp keepcnt 8 defi...

RedisCluster搭建步驟

安裝redis 配置並啟動redis節點 選兩台機器執行該步驟 把redis安裝目錄redis.conf修改如下並複製進對應的700 資料夾 bind 10.11.147.40 redis安裝機器ip 注意這裡千萬不要用127.0.0.1或者注釋掉這行,以上兩種都會導致遠端機器連線不到redis p...