我們來通過一組組示例進行分析:
3節點環境:1個master、2個slave
存儲空間:最大等於1個節點的容量。(如果是2個master的話,那么數據會丟失一部分)
冗余性:允許1個節點故障。
4節點環境:2個master、2個slave
存儲空間:2個節點的容量。
冗余性:允許1個節點故障。(集群中,半數以上節點認為故障,才會選舉。)
5節點環境:2個master、3個slave
存儲空間:2個節點的容量。
冗余性:允許2個節點故障。
6節點環境:3個master、3個slave
存儲空間:3個節點的容量。
冗余性:允許2個節點故障。
依次類推... ...
3節點和4節點對比:
容量:后者多了1個節點的存儲空間。
冗余:都是允許1個節點故障。
4節點和5節點對比:
容量:都是2個節點的容量。
冗余:后者多了1個節點的冗余。
通過對比發現: redis集群選擇奇數節點還是偶數,還是要看業務的需求。
舉個例子:業務的數據總量2個節點就可以滿足,那么就看業務對冗余性的要求,
如果有1個冗余就OK,那么就考慮4個節點的集群。
如果要更高的冗余,那么就考慮5個節點的集群。
不過話又說回來了,企業既然選擇了redis集群,公司也不差這一個節點的錢,
一般做法是偶數節點的redis集群。