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集群。

原文地址:http://blog.51cto.com/13690439/2119698

时间: 2024-10-08 03:15:14

Redis集群中,是选择奇数节点还是偶数节点?(理论)的相关文章

Redis集群中删除/修改节点(master、slave)(实验)

删除一个slave节点: # redis-trib.rb del-node 192.168.2.202:6380 e4dc23dc67418bf66c6c63655110612cb9516aff // del-node  host:port  node-id >>> Removing node e4dc23dc67418bf66c6c63655110612cb9516aff from cluster 192.168.2.202:6380 >>> Sending CLUS

在Redis集群中使用pipeline批量插入

由于项目中需要使用批量插入功能, 所以在网上查找到了Redis 批量插入可以使用pipeline来高效的插入, 示例代码如下: String key = "key"; Jedis jedis = new Jedis("xx.xx.xx.xx"); Pipeline p = jedis.pipelined(); List<String> myData = .... //要插入的数据列表 for(String data: myData){ p.hset(ke

如何确定Redis集群中各个节点的主从关系

1.首先通过命令(以192.168.203.141为例,-c代表集群的意思) ./redis-cli -h 192.168.203.141 -p 8001 -c 2.然后在输入  cluster nodes 命令,然后就会显示出各个节点的主从信息了 原文地址:https://www.cnblogs.com/fengzifengfeng/p/10421431.html

Redis集群节点主从关系调整

一.概述 Redis集群创建后,可能会出现互为主从关系的节点从属于同一台服务器的情况.在此种情况下,若 服务器故障宕机或需要停机维护,互为主从关系的节点同时停止运行,导致redis集群暂时失去一部 分slot插槽.此时,redis集群为fail状态,对其进行的数据读写操作均无法正常进行.为避免此种情 况的发生,应对redis集群节点的主从关系进行调整,使互为主从关系的节点分属于不同的服务器. 二.调整方法描述 1.使用redis-trib.rb脚本将待调整的从节点从redis集群中删除.(执行此

Redis集群搭建案例

版本及系统说明 系统:CentOS 6.8 64X Redis版本:redis-3.2.5 集群说明: 总共6个节点 3个Master节点,分别为7000.8000.9000. 3个Slave节点,分别为7001.8001.9001. 安装Redis # wget http://download.redis.io/releases/redis-3.2.5.tar.gz # yum -y install gcc tcl # mkdir /usr/local/redis # tar xvf redi

【Redis】3、Redis集群部署

Redis 集群是一个提供在多个Redis间节点间共享数据的程序集. Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误. Redis 集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下继续处理命令 Redis 集群是一个分布式(distributed).容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用

redis集群相关资料

Cluster简介 Redis 3.0引入的cluster.cluster是具有有自动数据分片.容错.针对读取速度有了显著的提升.改进了AOF重写等的redis分布式实现. Redis 集群是一个分布式(distributed).容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset). Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性

redis.conf中bind绑定IP不对,redis集群创建节点的时候,报错|redi群集密码设置

前言# 我们都知道,redis 的配置文件中,默认绑定接口是 127.0.0.1,也就是本地回环接口,所以是无法从外网连接 redis 服务的.如果想要让外网也能连接使用服务器上的 redis 服务,可以简单地注释掉 bind 这一行.但对于 bind 参数的作用,网上有很多文章的解释都是误人子弟的. 关于bind# 翻看网上的文章,此处多翻译为: 指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求,在生产环境中最好设置该项.这种解释会搞糊涂初学者,甚至是错误

redis 集群新增节点,slots槽分配,删除节点, [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GET...

redis reshard 重新分槽(slots) https://github.com/antirez/redis/issues/5029 redis 官方已确认该bug redis 集群重新(reshard)分片故障 [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY) 错误背景描述 redis版本:4.0.1 ruby gem reids 版本