Redis學習之集群

2021-09-29 05:22:32 字數 996 閱讀 9562

redis集群的搭建,我已經在前面文章介紹過了,這篇文章,就讓我們來學習一下redis的集群是如何實現的。

redis最開始的集群搭建是依靠zk的,但是在 3.0 之後版本支援redis-cluster集群。redis-cluster採用無中心結構,即每個節點儲存資料和整個集群狀態,每個節點都和其他所有 節點連線。

那麼我們是如何知道,我們的資料儲存在**的呢?這樣的話,我們就需要了解另乙個概念,槽。

redis的集群裡面有著乙個槽(slots)的概念,他的大小是10的14次方(16384 ),每當我們向集群中set乙個值的時候,我們就會通過crc16演算法得到乙個值,然後再對16384 這個值取模,最後得到的值就是給他分配到值的槽的位置。同理,我們再讀取資料的時候,也是通過這種方式獲取的。

然後在集群建立的時候,我們的每個主節點就已經有了自己分配好的槽了(但是我還不知道他們初始化的時候是如何分配的槽,網上也沒找到),但是只有主節點才有槽,所以,我們的集群中每個主節點,都必須要分配從節點,主節點負責資料的讀取,從節點負責資料的同步(主從複製,這也是關於redis高可用的體現,所以,我們的redis是ap的,並不強調資料一致性)。

一旦主節點掛了,從節點變成主節點,即使原主節點重新上線,也會變成現在主節點的從節點。一旦有主節點掛了,且無從節點,整個集群也會下線。

另乙個redis集群中重要的內容就是哨兵了。

說實話我第一次聽見這個名詞的時候,我腦海裡浮現的總是變種人裡面的那個哨兵 (*^▽^*) 皮一下 哈哈

當然,redis中的哨兵不可能像電影裡面那麼無所不能,它只有兩個作用,一是監控主從節點是否正常,二是在主節點下線的時候,自動將從節點提公升為主節點。說的高階點,就是實現自動化的系統監控故障恢復功能

總結一下:

Redis之Ubuntu下Redis集群搭建

進入到redis 4.0.10的src目錄下,啟動redis服務 cd src redis server 注意 由於啟動後是在前台執行,想要讓redis服務在後台執行,有很多方法。一種是在命令後面加上 一種是啟動後按ctrl z,讓服務在後台停止,使用jobs顯示後台的所有任務及任務pid,然後使用...

Redis 集群方案學習

redis 請求先達到 層,然後再 層做路由規則以及請求分發和結果合併。方案優點 1.路由分片邏輯下移,不依賴客戶端 客戶端可像連線redis一樣連線proxy 2.proxy 連線 redis例項,減少redis承載的連線數 方案缺點 1.請求經過中間層,產生網路消耗。2.無法平滑增加redis例...

Redis學習4 3 redis集群

本次集群使用redis 4.0.0 src redis trib.rb指令碼,而該指令碼使用ruby語言,故要先安裝ruby。root使用者安裝,非編譯安裝ruby只能安裝在 opt目錄下,將ruby dist 2.4.0.tar.gz拷貝到 opt目錄下。解壓 root localhost opt...