本篇內容講解,非常適合新手學習,還不懂Redis Cluster搭建過程的小夥伴,有福了,廢話不多說,直接看內容吧,喜歡的話別忘了一鍵三連。Redis叢集演進過程Redis單節點主從複製:複製主要
2021-06-16 15:32:21
本篇內容講解,非常適合新手學習,還不懂Redis Cluster搭建過程的小夥伴,有福了,廢話不多說,直接看內容吧,喜歡的話別忘了一鍵三連。
Redis叢集演進過程
Redis單節點主從複製:複製主要實現了資料的多機備份,以及對於讀操作的負載均衡和簡單的故障恢復。故障恢復無法自動化;寫操作無法負載均衡;儲存能力受到單機的限制。哨兵(Sentinel):在複製的基礎上,哨兵實現了自動化的故障恢復。缺陷是寫操作無法負載均衡;儲存能力受到單機的限制。Cluster叢集:通過分片叢集,Redis解決了寫操作無法負載均衡,以及儲存能力受到單機限制的問題,而且也具有故障遷移(主從切換)的功能,實現了較為完善的高可用方案。
科普特性
請對照上面的架構圖
redis cluster不支援單機版本的16個預設資料庫,僅有0資料庫, select命令被禁用key空間被劃分為16384個雜湊槽,每個master節點負責處理16384個雜湊槽的子集;跨slot的兩個key 可能不能做一些操作,比如 sdiff sunion當叢集沒有發生重配,叢集是穩定的每個master都可能有1個或多個slave節點, 這些節點將在網路分區或者發生故障時嘗試替代master節點, 同時這些slave節點也可用於支撐大規模的讀操作將key對映到雜湊操作的演算法是hash_slot = CRC16(16)mod 16384例外:key hash tags:{user1000}.following和{user1000}.followers兩個鍵值將被放在一個雜湊槽,因為只有子字元串user1000將被用來計算雜湊槽。
Cluster bus: 每個redis節點都有一個用於叢集節點間通訊的tcp埠(在原客戶端訪問埠之上加上1000),節點使用gossip協議和配置更新機制,以避免在正常情況下在節點之間交換過多的訊息,因此交換的訊息數量不是指數級的redis客戶端可以向叢集中每個節點發送查詢(包括從節點),節點將會分析查詢key,找到負責對應雜湊槽的節點。當前節點能處理最好,不能處理將返回 MOVED error、雜湊槽、能處理的節點,客戶端將自行定向到特定新節點查詢。
一般情況下slave節點會將客戶端請求重定向到負責對應雜湊槽的master節點,但是為了支撐大規模讀,可以給slave節點開啟 READONLY搭建Redis Cluster
本文使用一個單物理機,搭建偽Redis Cluster(3主3從)
創建redis-cluster目錄,存放叢集下載最新版redis-6.2.4, 將bin目錄下的可執行檔案、redis.conf拷貝到同級目錄redis01修改redis01 目錄下redis.conf配置:port 7001cluster-enabled yes // 之前被註釋將redis01拷貝多個,形成redis02, redis02, redis04, redis05,redis06 ,修改對應redis.conf port為7002 7003 7004 7005 7006
啟動6個redis節點,使用start.sh指令碼( chmod +x start.sh)// 每個啟動命令後面的& 表示後臺啟動
準備組建redis clusterredis 5+可以使用redis-cli 特定命令來組建叢集; redis3,4使用redis-trib.rb來協助組建。
使用redis-cli --cluster命令創建由6個節點組成的redis cluser,其中cluster-replicas 1將為每個master節點創建slave節點(不帶上這個cluster-replicas,會創建了6個master節點組成的redis cluster).
驗證叢集狀態使用redis-cli -p 7001 -c登入節點 (這裡一定要 -c 表示連線的叢集)使用cluster nodes檢視節點狀態以上操作搭建了由3master 3Slave形成的高可用redis cluster,節點角色由自動生成的nodes.conf檔案維護
客戶端實操
redis-cli --cluster call host01 FLUSHALL 清空叢集
redis-cli --cluster call host01 Keys * 查詢所有節點
如果覺得以上過程很繁瑣,Redis官方提供了另外的工具,在utils目錄下存在create-cluster指令碼。
create-cluster startcreate-cluster create就會創建3 mater 3 slave組成的redis cluster(首節點埠從30001 開始),這樣前置知識可能沒有按部就班更清晰。總結
以上就是Redis Cluster科普級別的知識, 幫助大家快速全面瞭解Redis Cluster, 快速搭建Redis Cluster。
需要Java學習資料的小夥伴,關注絲我「資料」。
相關文章
本篇內容講解,非常適合新手學習,還不懂Redis Cluster搭建過程的小夥伴,有福了,廢話不多說,直接看內容吧,喜歡的話別忘了一鍵三連。Redis叢集演進過程Redis單節點主從複製:複製主要
2021-06-16 15:32:21
家中的老電視已經服役了大概3年多的時間,雖然還能看,但不管是尺寸,還是顯示效果上感覺都嚴重不行了,更換電視成了必然。研究了很長時間,綜合對品牌、尺寸、顯示效果、配置、系統
2021-06-16 15:30:08
現在的遊戲對於電腦配置的要求高了不少,在遊戲進行到激烈之處往往會出現掉幀卡頓的情況。操作出現偏差也是理所當然。人們肯定下意識認為這是顯示卡不夠好,實則不然,關鍵時刻掉
2021-06-16 15:28:46
當年小米剛剛踏入智慧手機領域,憑藉的就是MIUI系統的易用性,功能齊全體驗出色,但隨著國產手機UI的不斷進步,MIUI的優勢已經完全不再了,友商趕超了上來,比如OPPO的ColorOS、vivo的O
2021-06-16 15:09:02
IT之家 6 月 16 日訊息 今日海貝音樂官方發表聲明,表示漫步者推出的 NeoBuds Pro 真無線藍芽耳機中,涉嫌侵犯了海貝公司於 2020 年 6 月 9 日獲得的專利技術【一種新型數字分
2021-06-16 15:06:09
眾所周知,儲存陣列需要巨大的儲存容量和高速的網路連線,並在資料中心中扮演著重要的角色。儘管雲端儲存越來越受歡迎,但儲存陣列(尤其是全快閃記憶體陣列)是許多企業儲存基礎設
2021-06-16 14:47:49