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获取或k ...
【技术保护点】
1.一种支持多节点的分布式缓存方法,其中,该方法包括:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。
【技术特征摘要】
1.一种支持多节点的分布式缓存方法,其中,该方法包括:建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的存储或获取请求。2.根据权利要求1所述的方法,其中,建立哈希值与分布式集群中的主节点的映射关系表,包括:使用哈希算法,建立哈希值与分布式集群中的主节点的映射关系表;客户端接收键的存储或获取请求,计算出键对应的哈希值,包括:客户端接收键的存储或获取请求,使用所述哈希算法计算出键对应的哈希值。3.根据权利要求1所述的方法,其中,所述映射关系表的存储结构为红黑树。4.根据权利要求1所述的方法,其中,基于所计算出哈希值从所述映射关系表中获取对应的主节点,包括:从所述映射关系表中取出大于等于所计算出的哈希值的对应的第一个主节点作为命中的主节点。5.一种支持多节点的分布式缓存设备,其中,该设备包括:第一装置,用于建立哈希值与分布式集群中的主节点的映射关系表,其中,所述映射关系表中所述哈希值按从小到大的顺序排列,对应所述哈希值的各个主节点依序循环排列,每个主节点循环出现的次数基于对应的权值和增量因子确定;第二装置,用于客户端接收键的存储或获取请求,计算出所述键对应的哈希值,基于所计算出的哈希值从所述映射关系表中获取对应的主节点;第三装置,用于建立所述客户端与获取到的主节点的连接后,所述客户端向所述主节点发送所述键的...
【专利技术属性】
技术研发人员:童小明,
申请(专利权)人:上海雷腾软件股份有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。