2023-02-10
一、集群的定義
1、redis集群實作了對redis的水平擴容,即啟動N個redis節點,將整個資料庫分布存盤在N個節點中,每個節點存盤總資料的1/N,
2、redis集群通過磁區來提供一定程度的可用性:即使集群中有一部分節點失效或者無法進行通訊,集群也可以繼續處理命令請求
二、-c 采用集群策略連接,設定資料會自動切換到相應的寫主機
redis-cli -c -p 6379
三、通過cluster nodes命令查看集群資訊
cluster nodes

四、redis cluster分配六個節點的方式
1、一個集群至少要有三個主節點
2、選項 --cluster-replicas 1表示希望為集群中的每個主節點創建一個從節點
3、分配原則盡量保證每個主資料庫運行在不同的IP地址,每個從庫和主庫不在一個IP地址上,
五、slots
1、slots的含義
插槽
2、說明
(1)一個redis集群包含16384個插槽(hash slot),資料庫中的每個鍵都屬于這16384個插槽的其中一個,
(2)集群使用公式CRC16(Key)%16384來計算鍵key屬于哪個槽,其中CRC16(Key)陳述句屬于計算鍵key的CRC16校驗和,
(3)集群中的每個節點負責一部分插槽,例如:
節點A負責處理0號至5460號插槽;
節點B負責處理5461號至10922號插槽;
節點C負責處理10923號至16383號插槽;
六、在集群中錄入值
不在一個slot下的鍵值,是不能使用mget,mset等多鍵操作,可以通過使用{}來定義組的概念,從而使key中{}內相同內容的鍵值放到一個slot中,

七、查詢集群中的值
1、計算key應該保存在哪個插槽
cluster keyslot key

2、計算某個插槽中保存的key的數量
cluster countkeysinslot slot
3、回傳count個slot槽中的鍵
cluster getkeysinslot <slot> <count>
八、故障恢復
問:如果所有某一段插槽的主從節點都宕掉,redis服務是否還能繼續?
如果所有某一段插槽的主從都掛掉,而
cluster-require-full-coverage
為yes,那么,整個集群都掛掉;
如果所有某一段插槽的主從都掛掉,而
cluster-require-full-coverage
為no,那么,該插槽資料全都不能使用,也無法存盤,其他插槽不受影響;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/543588.html
標籤:其它
