首页 > 代码库 > redis集群

redis集群

  使用redis集群可以干什么?

1.可以将数据分布式地存储在多个redis节点。

2.部分节点不可用时,仍然可以保证节点的可用性。

 

  redis集群中节点对tcp端口的要求:

1.client与节点之间通信的接口,称为p1

2.节点之间通信的接口,称为p2。p2=p1+10000

 

  redis集群与docker的兼容性:

redis集群不支持端口remapped,为了使docker与redis兼容,需要将docker在host networking mode下工作(--net=host)。

 

  redis集群的分表

redis集群的分表没有使用一致性hash,而是将数据分布在16384个slot中,平均分布在集群中的多个节点。

好处:

  1.增加节点和删除节点只需要将slot在节点间移动即可,移动slot时,无需down机。

redis支持同一个命令的执行中,对属于同一个slot的多个key进行操作,从而保证事务性。

使用hash tag可以保证多个key同属于一个slot

hash tag案例,大括号内的内容相同,两个key在同一个slot中:

1. keyA{foo}

2. keyB{foo}

  redis集群的的主从模式

我们可以为redis的每个node设置slave,某个节点的master挂了,slave可用,则集群仍然可用。若某个节点的主从全部挂掉,那么系统不可用。

 

  redis无法保证数据的强一致性,一些情况下,写入的数据可能会丢失。

redis client的写请求是异步返回的,写入master的数据,在复制到slave前,挂掉,那么数据会丢失。

 

 

 

 

 

 

 

    

 

redis集群