Redis Cluster 運維常見問題
阿新 • • 發佈:2018-12-25
1.叢集完整性
cluster-require-full-coverage 預設yes
大部分業務無法容忍。
2.頻寬消耗
官方建議:1000節點 .cluster-node-timeout.
節點之間通過ping/pong訊息
不可忽視的頻寬消耗
3.pub/sub 廣播
4.叢集傾斜:記憶體不均勻
1.資料傾斜
節點和槽的分配不均【不常見】
包含bigkey
不同槽對應鍵值數量比較大【CRC16 比較均勻的】/hashtag 可能性較大
2.請求傾斜
熱點key: 避免bigkey ,不要使用hash_tag,本地快取+MQ
3.讀寫分離:很複雜,成本很高,擴大叢集功能
只讀連線:叢集的從節點不接受任何讀寫請求
資料遷移
redis-trib.rb import.
不支援斷點傳輸,單執行緒,不支援線上遷移
線上遷移:
redis-migrate-tool(偽裝成slave 中轉站) redis-port
叢集限制
key 批量操作有限:例如mget 、mset 必須一個slot
key 事務和lua 支援有限:操作的Key 必須同一個節點
不支援多個數據庫
複製只支援一層:不支援樹形複製結構