支持多节点的分布式缓存方法及设备技术

技术编号:21199887 阅读:39 留言:0更新日期:2019-05-25 01:15
本发明专利技术的目的是提供一种支持多节点的分布式缓存方法及设备,本发明专利技术通过客户端接收键的存储或获取请求,计算出键对应的哈希值,基于所述哈希值从所述映射关系表中获取对应的主节点,接下来就可以获取该主节点的连接,进行最后的key的存储或获取请求,在客户端实现分布式节点的分片,整个分片过程由于是在客户端实现的,客户端的请求只需要一次网络通信就可以完成,一次网络通信就能实现key的获取或存储,大大降低了网络通信成本。另外,在客户端根据服务器硬件升级状态,确定主节点对应权值,根据对应权值确定主节点循环出现的次数,实现灵活给集群节点分配哈希槽。

Distributed Caching Method and Device Supporting Multi-Node

The object of the present invention is to provide a distributed caching method and device supporting multiple nodes. The method calculates the hash value corresponding to the key by receiving the storage or acquisition request of the key by the client. Based on the hash value, the corresponding primary node is obtained from the mapping relation table. Then the connection of the primary node can be obtained, and the final key storage or acquisition request can be made. Client realizes the partitioning of distributed nodes. Because the whole process of partitioning is implemented on the client side, the client's request can be completed only by one network communication. One network communication can realize the acquisition or storage of key, which greatly reduces the cost of network communication. In addition, according to the server hardware upgrade status, the client determines the corresponding weights of the primary node, and determines the number of times the primary node cycles according to the corresponding weights, so as to flexibly allocate hash slots to cluster nodes.

【技术实现步骤摘要】
支持多节点的分布式缓存方法及设备
本专利技术涉及计算机领域,尤其涉及一种支持多节点的分布式缓存方法及设备。
技术介绍
随着互联网的发展,特别是移动互联网的兴起,导致各种web应用访问量与日俱增,极大的增加了web应用服务器的压力,因此单节点的缓存服务器已不能支撑当前的高并发场景,支持多节点的分布式缓存技术自然而然成为了互联网技术的焦点,网络上各种实现多节点的缓存服务器集群方案也层出不穷,集群方案虽然解决了并发访问的问题,但是也凸显出了另外一些问题,如服务的通信成本和可用性问题,以redis为例,redis自3.0版本就提供了集群分片方案,该集群分片方案提供的数据存储分片原理是这样的:redis集群内部划分了16384个哈希槽,这些哈希槽被平均分配至多个集群主库,当客户端请求key(键)的存储或获取时,redis节点先计算key对应的哈希槽,然后定位到某个集群主库,最后客户端通过请求redis节点返回的重定向节点,实现最终的key获取或key存储,大致过程如图1所示,每个节点包括一个主节点和对应的一个从节点,如主节点master1及对应的从节点slave1,主节点master2及对应的从节点slave2。如图1所示,现有的方案确实能减缓服务器压力,应对并发请求,但是仍然存在以下缺点:1.一次key存储或获取需要进行三次网络通信,如图1所示,其中,第一次,客户端client向主节点master1请求哈希槽;第二次主节点master1向,客户端client返回哈希槽;第三次,客户端client根据返回的哈希槽重定向到主节点master2,实现最终的key获取或key存储;这种方式网络通信成本高;2.redis集群采用多节点平分哈希槽,不支持根据服务器性能状况进行对应权值的动态哈希分配,不够灵活。
技术实现思路
本专利技术的一个目的是提供一种支持多节点的分布式缓存方法及设备。根据本专利技术的一个方面,提供了一种支持多节点的分布式缓存方法,该方法包括:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。进一步的,所述方法中,建立哈希值与分布式集群中的主节点的映射关系表,包括:使用哈希算法,建立哈希值与分布式集群中的主节点的映射关系表;客户端接收键的存储或获取请求,计算出键对应的哈希值,包括:客户端接收键的存储或获取请求,使用所述哈希算法计算出键对应的哈希值。进一步的,所述方法中,所述映射关系表的存储结构为红黑树。进一步的,所述方法中,基于所计算出哈希值从所述映射关系表中获取对应的主节点,包括:从所述映射关系表中取出大于等于所计算出的哈希值的对应的第一个主节点作为命中的主节点。根据本专利技术的另一面还提供一种支持多节点的分布式缓存设备,其中,该设备包括:第一装置,用于建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;第二装置,用于客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;第三装置,用于建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。进一步的,上述设备中,所述第一装置,用于使用哈希算法,建立哈希值与分布式集群中的主节点的映射关系表;所述第二装置,用于客户端接收键的存储或获取请求,使用所述哈希算法计算出键对应的哈希值。进一步的,上述设备中,所述映射关系表的存储结构为红黑树。进一步的,上述设备中,所述第一装置,用于从所述映射关系表中取出大于等于所计算出的哈希值的对应的第一个主节点作为命中的主节点。根据本专利技术的另一面还提供一种基于计算的设备,其中,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。根据本专利技术的另一面还提供一种计算机可读存储介质,其上存储有计算机可执行指令,其中,该计算机可执行指令被处理器执行时使得该处理器:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。与现有技术相比,本专利技术通过客户端(client)接收键(key)的存储或获取请求,计算出键对应的哈希值,基于所述哈希值从所述映射关系表中获取对应的主节点,接下来就可以获取该主节点的连接,进行最后的key的存储或获取请求,在客户端实现分布式节点的分片,整个分片过程由于是在客户端实现的,客户端的请求只需要一次网络通信就可以完成,一次网络通信就能实现key的获取或存储,大大降低了网络通信成本。另外,在客户端根据服务器硬件升级状态,确定主节点对应权值,根据对应权值确定主节点循环出现的次数,实现灵活给集群节点分配哈希槽。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1示出用户端与redis集群实现哈希分配通信模型示意图;图2示出本专利技术一实施例的客户端实现哈希分配与redis集群通信模型示意图;图3示出本专利技术一实施例的根据服务器状态进行节点对应权值的分片原理示意图。具体实施方式下面结合附图对本专利技术作进一步详细描述。在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储本文档来自技高网
...

【技术保护点】
1.一种支持多节点的分布式缓存方法,其中,该方法包括:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。

【技术特征摘要】
1.一种支持多节点的分布式缓存方法,其中,该方法包括:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。2.根据权利要求1所述的方法,其中,建立哈希值与分布式集群中的主节点的映射关系表,包括:使用哈希算法,建立哈希值与分布式集群中的主节点的映射关系表;客户端接收键的存储或获取请求,计算出键对应的哈希值,包括:客户端接收键的存储或获取请求,使用所述哈希算法计算出键对应的哈希值。3.根据权利要求1所述的方法,其中,所述映射关系表的存储结构为红黑树。4.根据权利要求1所述的方法,其中,基于所计算出哈希值从所述映射关系表中获取对应的主节点,包括:从所述映射关系表中取出大于等于所计算出的哈希值的对应的第一个主节点作为命中的主节点。5.一种支持多节点的分布式缓存设备,其中,该设备包括:第一装置,用于建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;第二装置,用于客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;第三装置,用于建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的...

【专利技术属性】
技术研发人员:童小明
申请(专利权)人:上海雷腾软件股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1