Redis

关注公众号 jb51net

关闭
首页 > 数据库 > Redis > redis cluster和gossip协议

浅析redis cluster介绍与gossip协议

作者:MrMirror

这篇文章主要介绍了redis cluster介绍与gossip协议,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、redis cluster 介绍

redis cluster架构下的每个redis都要开放两个端口号,比如一个是6379,另一个就是加1w的端口号16379。

二、节点间的内部通信机制

集群元数据的维护有两种方式:集中式、Gossip 协议。
redis cluster 节点间采用 gossip 协议进行通信。

1. 集中式

将集群元数据集中存储在一个节点上。典型代表是大数据领域的 storm。它是分布式的大数据实时计算引擎,是集中式的元数据存储的结构,底层基于 zookeeper对所有元数据进行存储维护。

优点

元数据的读取和更新时效性非常好,元数据的变更都能立即更新到集中式存储节点中,其它节点读取的时候就可以感知到;

缺点

所有的元数据的更新压力全部集中在一个地方,可能会导致元数据的存储有压力。

2. gossip 协议

redis 维护集群元数据采用的是gossip 协议,所有节点都持有一份元数据,不同的节点如果出现了元数据的变更,就不断将元数据发送给其它的节点,让其它节点也进行元数据的变更。

优点

元数据的更新比较分散,不是集中在一个地方,降低了压力;

缺点

元数据的更新有延时,可能导致集群中的一些操作会有一些滞后。


三、深入剖析gossip 协议

gossip 协议包含多种消息,包含 ping、pong、meet、fail等等。

meet:某个节点在内部发送了一个gossip meet 消息给新加入的节点,通知那个节点去加入我们的集群。然后新节点就会加入到集群的通信中

redis-trib.rb add-node

继续深入剖析ping消息

10000 端口:
每个节点都有一个专门用于节点间通信的端口,就是自己提供服务的端口号+10000,比如 6379,那么用于节点间通信的就是16379端口。每个节点每隔一段时间都会往另外几个节点发送 ping 消息,同时其它几个节点接收到 ping 之后返回 pong。
交换的信息:信息包括故障信息,节点的增加和删除,hash slot 信息等等。

总结

到此这篇关于redis cluster介绍与gossip协议的文章就介绍到这了,更多相关redis cluster和gossip协议内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文