Redis集群中,是选择奇数节点还是偶数节点?(理论)
我们来通过一组组示例进行分析:
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集群。