CN115442439A - 分布式缓存集群管理方法、***、终端及存储介质 - Google Patents
分布式缓存集群管理方法、***、终端及存储介质 Download PDFInfo
- Publication number
- CN115442439A CN115442439A CN202211058750.5A CN202211058750A CN115442439A CN 115442439 A CN115442439 A CN 115442439A CN 202211058750 A CN202211058750 A CN 202211058750A CN 115442439 A CN115442439 A CN 115442439A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- node
- distributed
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 35
- 238000013507 mapping Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 26
- 238000013500 data storage Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/783—Distributed allocation of resources, e.g. bandwidth brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式缓存集群管理方法、***、终端及存储介质,该方法包括:根据分布式缓存集群的拓扑结构查询缓存节点和键值;生成哈希环,根据各缓存节点和各键值的哈希值,分别在哈希环中进行位置映射;各键值与各缓存节点之间的位置关系,得到节点绑定关系,若接收到任一客户端的数据读取指令,则根据数据读取指令中的键值和节点绑定关系,确定哈希环上的目标节点,根据目标节点的缓存数据对客户端进行数据反馈。本发明采用一致哈希的方式在哈希环上自动对各缓存节点和各键值进行寻址,使得在分布式缓存场景中,相同的键值每次的请求都能读取到相同的缓存节点上,进而提高了分布式缓存集群的管理效率。
Description
技术领域
本发明涉及分布式缓存集群技术领域,尤其涉及一种分布式缓存集群管理方法、***、终端及存储介质。
背景技术
随着计算机网络技术的飞速发展,计算机在生活中的应用越来越广泛,海量的数据需要进行数据存储和处理,分布式缓存集群应运而生,分布式缓存集群主要用于在高并发环境下,减轻数据库的压力,提高***的响应速度和并发吞吐,为提高分布式缓存集群性能的稳定性,针对分布式缓存集群管理的问题越来越受用户所重视。
现有的分布式缓存集群管理过程中,当接收到客户端的数据读取指令时,通常是将数据读取指令中的键值分别与每个缓存节点进行匹配,并根据匹配结果进行数据反馈,由于需要将键值分别与每个缓存节点进行匹配,导致数据读取耗时较长,降低了分布式缓存集群的管理效率。
发明内容
本发明实施例的目的在于提供一种分布式缓存集群管理方法、***、终端及存储介质,旨在解决现有的分布式缓存集群管理效率较低的问题。
本发明实施例是这样实现的,一种分布式缓存集群管理方法,所述方法包括:
获取分布式缓存集群的拓扑结构,并根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值;
根据预设哈希函数生成哈希环,并根据各缓存节点和各键值的哈希值,分别在所述哈希环中进行位置映射;
获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,所述节点绑定关系用于表征不同所述键值与对应缓存节点之间的绑定关系;
若接收到任一客户端的数据读取指令,则根据所述数据读取指令中的键值和所述节点绑定关系,确定所述哈希环上的目标节点,并根据所述目标节点的缓存数据对所述客户端进行数据反馈。
更进一步的,所述方法还包括:
分别获取所述分布式缓存集群中各缓存数据的数据存储时间,并根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表;
若接收到数据存储指令,则分别获取所述分布式缓存集群的剩余存储值和待存储数据的数据值;
若所述剩余存储值与所述待存储数据的数据值之间满足数据删除条件,则根据所述数据缓存链表对所述缓存数据进行数据删除;
将所述待存储数据存储至所述分布式缓存集群,并根据所述待存储数据的数据存储时间,将所述待存储数据添加至所述数据缓存链表。
更进一步的,所述根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表之后,还包括:
若任一所述缓存数据被访问时,则在所述数据缓存链表中,将被访问的所述缓存数据移动至链表头部;
所述根据所述数据缓存链表对所述缓存数据进行数据删除,包括:
将所述数据缓存链表中链表尾部的所述缓存数据进行删除。
更进一步的,所述根据所述目标节点的缓存数据对所述客户端进行数据反馈,包括:
获取所述数据读取指令中的数据标识,并根据所述数据标识在所述目标节点的缓存数据中进行数据匹配;
若所述目标节点的缓存数据中有匹配到数据,则将匹配到的数据对所述客户端进行数据反馈;
若所述目标节点的缓存数据中未匹配到数据,则根据所述数据标识在分布式对象存储中进行数据匹配,得到目标读取数据;
将所述目标读取数据对所述客户端进行数据反馈,并将所述目标读取数据存储至所述目标节点的缓存数据中。
更进一步的,所述获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系之后,还包括:
若接收到节点添加指令,则计算待添加缓存节点的哈希值,并根据所述待添加缓存节点的哈希值确定所述哈希环上的目标位置;
根据所述目标位置,在所述哈希环中对所述待添加缓存节点进行节点添加;
获取节点添加后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系;
若接收到节点删除指令,则根据所述节点删除指令确定目标缓存节点,并在所述哈希环上删除所述目标缓存节点;
获取节点删除后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系。
更进一步的,所述获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,包括:
在位置映射后所述哈希环上,以各键值的位置为起点,沿顺时针顺序进行所述缓存节点的查询;
将各键值与对应查询到的首个所述缓存节点确定为所述绑定关系。
更进一步的,所述根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值之后,还包括:
分别向各缓存节点发送心跳数据包,并接收各缓存节点针对所述心跳数据包的数据响应;
若任一所述缓存节点针对所述心跳数据包的数据响应时间大于时间阈值,则在所述分布式缓存集群中删除所述缓存节点。
本发明实施例的另一目的在于提供一种分布式缓存集群管理***,所述***包括:
节点查询模块,用于获取分布式缓存集群的拓扑结构,并根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值;
哈希寻址模块,用于根据预设哈希函数生成哈希环,并根据各缓存节点和各键值的哈希值,分别在所述哈希环中进行位置映射;
关系获取模块,用于获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,所述节点绑定关系用于表征不同所述键值与对应缓存节点之间的绑定关系;
数据反馈模块,用于若接收到任一客户端的数据读取指令,则根据所述数据读取指令中的键值和所述节点绑定关系,确定所述哈希环上的目标节点,并根据所述目标节点的缓存数据对所述客户端进行数据反馈。
本发明实施例的另一目的在于提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本发明实施例的另一目的在于提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明实施例,通过各缓存节点和各键值的哈希值,分别在哈希环中进行位置映射,以采用一致哈希的方式在哈希环上自动对各缓存节点和各键值进行寻址,使得在分布式缓存场景中,相同的键值每次的请求都能读取到相同的缓存节点上,进而提高了分布式缓存集群的管理效率,通过获取位置映射后哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,基于节点绑定关系能自动确定到客户端所请求的目标节点,并基于目标节点的缓存数据对客户端进行数据反馈,提高了分布式缓存场景中的数据读取效率。
附图说明
图1是本发明第一实施例提供的分布式缓存集群管理方法的流程图;
图2是本发明第一实施例提供的哈希环的结构示意图;
图3是本发明第一实施例提供的分布式缓存集群的示意图;
图4是本发明第二实施例提供的分布式缓存集群管理方法的流程图;
图5是本发明第二实施例提供的数据缓存链表的结构示意图;
图6是本发明第三实施例提供的分布式缓存集群管理***的结构示意图;
图7是本发明第四实施例提供的终端设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
请参阅图1,是本发明第一实施例提供的分布式缓存集群管理方法的流程图,该分布式缓存集群管理方法可以应用于任一终端设备或***,该分布式缓存集群管理方法包括步骤:
步骤S10,获取分布式缓存集群的拓扑结构,并根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值;
其中,通过获取分布式缓存集群的拓扑结构,基于拓扑结构能有效地查询到分布式缓存集群中的缓存节点和键值,该分布式缓存集群中的缓存节点和键值的数量可以根据用户需求进行设置;
可选的,该步骤中,所述根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值之后,还包括:
分别向各缓存节点发送心跳数据包,并接收各缓存节点针对所述心跳数据包的数据响应;其中,通过分别向各缓存节点发送心跳数据包,并接收各缓存节点针对心跳数据包的数据响应,以达到对各缓存节点的活性监测效果;
若任一所述缓存节点针对所述心跳数据包的数据响应时间大于时间阈值,则在所述分布式缓存集群中删除所述缓存节点;
其中,该时间阈值可以根据需求进行设置,通过判断各缓存节点针对心跳数据包的数据响应时间与时间阈值之间的大小判断,以判断各缓存节点是否存在异常;
该步骤中,基于对各缓存节点的活性监测,以判断各缓存节点是否存在异常,以控制各缓存节点定时发送心跳汇报自身的健康状态,若任一缓存节点针对心跳数据包的数据响应时间大于时间阈值,则判断该缓存节点存在异常,通过在分布式缓存集群中删除缓存节点,提高了分布式缓存集群的管理效率;
步骤S20,根据预设哈希函数生成哈希环,并根据各缓存节点和各键值的哈希值,分别在所述哈希环中进行位置映射;
其中,通过各缓存节点和各键值的哈希值,分别在哈希环中进行位置映射,以采用一致哈希的方式在哈希环上自动对各缓存节点和各键值进行寻址,使得在分布式缓存场景中,相同的键值每次的请求都能读取到相同的缓存节点上,进而提高了分布式缓存集群的管理效率,该预设哈希函数可以根据需求进行设置,基于预设哈希函数将哈希值空间组织成一个虚拟的圆环,得到该哈希环,例如,当哈希值空间中预设哈希函数的值空间是0-2^32-1时,将哈希值映射到0-2^32-1之间,组成一个圆环,即,哈希值是一个32位无符号整形;
该步骤中,基于一致性哈希算法分别计算出各缓存节点和各键值的哈希值,基于各缓存节点和各键值的哈希值,确定出各缓存节点和各键值的位置,该步骤中,使用缓存节点的名字作为关键字,并按照顺时针排列;
例如,请参阅图2,若分布式缓存集群中存在3个缓存节点,则基于一致性哈希算法分别计算缓存节点A、缓存节点B和缓存节点C的哈希值,并根据缓存节点A、缓存节点B和缓存节点C的哈希值,分别确定缓存节点A、缓存节点B和缓存节点C在哈希环上的位置,基于确定到的位置对缓存节点A、缓存节点B和缓存节点C进行位置映射;
可以理解的,当分布式缓存集群中存在4个键值(key)时,则分别计算key1、key2、key3和key4的哈希值,基于key1、key2、key3和key4的哈希值进行位置映射;
步骤S30,获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系;
其中,节点绑定关系用于表征不同键值与对应缓存节点之间的绑定关系,例如,请参阅图2,key1绑定到了缓存节点B,key2绑定到了缓存节点C,key3与key4绑定到了缓存节点A,基于节点绑定关系,能有效地查询到各键值对应的缓存节点,提高了分布式缓存集群管理过程中的数据读取效率;
可选的,该步骤中,所述获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系之后,还包括:
若接收到节点添加指令,则计算待添加缓存节点的哈希值,并根据所述待添加缓存节点的哈希值确定所述哈希环上的目标位置;
其中,通过计算待添加缓存节点的哈希值,基于待添加缓存节点的哈希值,能自动确定到待添加缓存节点在哈希环上的目标位置,提高了待添加缓存节点在哈希环上寻址的准确性;
根据所述目标位置,在所述哈希环中对所述待添加缓存节点进行节点添加;
获取节点添加后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系;
其中,通过获取节点添加后哈希环上各键值与各缓存节点之间的位置关系,基于获取到的位置关系,能有效地更新节点绑定关系,保障了节点添加后节点绑定关系中各键值与对应缓存节点之间绑定关系的准确性;
若接收到节点删除指令,则根据所述节点删除指令确定目标缓存节点,并在所述哈希环上删除所述目标缓存节点;
获取节点删除后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系;
其中,通过获取节点删除后哈希环上各键值与各缓存节点之间的位置关系,基于获取到的位置关系,能有效地更新节点绑定关系,保障了节点删除后节点绑定关系中各键值与对应缓存节点之间绑定关系的准确性;
该步骤中,在新增或删除节点时,只需要重新定位待添加缓存节点或目标缓存节点在哈希环上附近的小部分数据,并不需要重新定位所有的缓存节点,进而提高了分布式缓存集群的管理效率;
进一步地,该步骤中,所述获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,包括:在位置映射后所述哈希环上,以各键值的位置为起点,沿顺时针顺序进行缓存节点的查询,并将各键值与对应查询到的首个缓存节点确定为绑定关系。
步骤S40,若接收到任一客户端的数据读取指令,则根据所述数据读取指令中的键值和所述节点绑定关系,确定所述哈希环上的目标节点,并根据所述目标节点的缓存数据对所述客户端进行数据反馈;
其中,通过查询数据读取指令中的键值在节点绑定关系中对应的缓存节点,能有效地确定到哈希环上的目标节点,基于确定到的目标节点能有效地对客户端进行数据反馈,可选的,该步骤中,所述根据所述目标节点的缓存数据对所述客户端进行数据反馈,包括:
获取所述数据读取指令中的数据标识,并根据所述数据标识在所述目标节点的缓存数据中进行数据匹配;其中,通过将数据标识在目标节点的缓存数据中进行数据匹配,以查询目标节点的缓存数据中是否存在客户端需要读取的数据,可选的,该步骤中,根据数据标识同时在本地内存缓存中进行数据匹配;
若所述目标节点的缓存数据中有匹配到数据,则将匹配到的数据对所述客户端进行数据反馈;
若所述目标节点的缓存数据中未匹配到数据,则根据所述数据标识在分布式对象存储中进行数据匹配,得到目标读取数据;其中,请参阅图3,若在本地内存缓存以及目标节点的缓存数据都未匹配到数据时,则根据数据标识在分布式对象存储中进行数据读取;
将所述目标读取数据对所述客户端进行数据反馈,并将所述目标读取数据存储至所述目标节点的缓存数据中;其中,通过将目标读取数据存储至目标节点的缓存数据中,有效地保障了分布式缓存集群中目标读取数据的读取。
本实施例,通过各缓存节点和各键值的哈希值,分别在哈希环中进行位置映射,以采用一致哈希的方式在哈希环上自动对各缓存节点和各键值进行寻址,使得在分布式缓存场景中,相同的键值每次的请求都能读取到相同的缓存节点上,进而提高了分布式缓存集群的管理效率,通过获取位置映射后哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,基于节点绑定关系能自动确定到客户端所请求的目标节点,并基于目标节点的缓存数据对客户端进行数据反馈,提高了分布式缓存场景中的数据读取效率。
实施例二
请参阅图4,是本发明第二实施例提供的分布式缓存集群管理方法的流程图,该实施例用于对第一实施例作进一步细化,包括步骤:
步骤S50,分别获取所述分布式缓存集群中各缓存数据的数据存储时间,并根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表;
其中,根据各缓存数据的数据存储时间,采用缓存淘汰策略对各缓存数据进行排序,得到数据缓存链表;可选的,该步骤中,所述根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表之后,还包括:
若任一所述缓存数据被访问时,则在所述数据缓存链表中,将被访问的所述缓存数据移动至链表头部;其中,通过将被访问的缓存数据移动至链表头部,能有效地基于各缓存数据的数据冷热,采用缓存淘汰策略对各缓存数据进行排序更新;
步骤S60,若接收到数据存储指令,则分别获取所述分布式缓存集群的剩余存储值和待存储数据的数据值;
其中,通过分别获取分布式缓存集群的剩余存储值和待存储数据的数据值,有效地为后续的数据删除条件的检测提供了数据基础;
步骤S70,剩余存储值与所述待存储数据的数据值之间满足数据删除条件,则根据所述数据缓存链表对所述缓存数据进行数据删除;
其中,该数据删除条件可以根据需求进行设置,例如,该数据删除条件可以设置为计算剩余存储值与待存储数据的数据值之间数据差值,并判断数据差值是否大于差值阈值,该差值阈值可以根据需求进行设置;
该步骤中,当数据差值小于差值阈值,则判定剩余存储值与待存储数据的数据值之间满足数据删除条件,即,判断到当前分布式缓存集群中的存储空间已满,需要对分布式缓存集群中存储的缓存数据进行删除,以保障该待存储数据的存储;
可选的,该步骤中,所述根据所述数据缓存链表对所述缓存数据进行数据删除,包括:将所述数据缓存链表中链表尾部的所述缓存数据进行删除;
步骤S80,数据存储至所述分布式缓存集群,并根据所述待存储数据的数据存储时间,将所述待存储数据添加至所述数据缓存链表;
请参阅图5,最开始分布式缓存集群的存储空间为空,因此,数据a、数据b和数据c可以正常存储,根据数据a、数据b和数据c的数据存储时间生成数据缓存链表;
当加入数据d时,检测到剩余存储值与数据d的数据值之间满足数据删除条件,即,此时分布式缓存集群中的存储空间不够,根据缓存淘汰算法,由于数据a是最先进入分布式缓存集群,且期间未被二次访问,因此,数据s是最冷的数据,将数据a进行删除;
当数据b被2次访问的时,将数据b移动到链表头部,此时,数据c移动至链表尾部,数据c是最冷的数据;
当待存储数据e需要存储至分布式缓存集群时,且检测到剩余存储值与待存储数据e的数据值之间满足数据删除条件,由于数据c是最冷的数据,将数据c删除,此时,分布式缓存集群中的存储空间的数据从热到冷为:e->b->d。
现有技术中,节点的客户端缓存能力依赖单节点的本地内存跟硬盘的容量,本地硬盘缓存盘的带宽跟存储设备是有限的,其存储容量也是固定的,如果遇到高IO的大数据,缓存很容易丢失,大部分数据还是从底层读取,缓存失去了其功功能,因此,本实施例中,在有限的分布式缓存集群的空间中,通过采用缓存淘汰算法将冷数据淘汰为热数据腾出存储空间,增加了分布式缓存集群中空间的利用率,进而提高了分布式缓存集群的管理效率。
实施例三
请参阅图6,是本发明第三实施例提供的分布式缓存集群管理***100的结构示意图,包括:节点查询模块10、哈希寻址模块11、关系获取模块12和数据反馈模块13,其中:
节点查询模块10,用于获取分布式缓存集群的拓扑结构,并根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值。
可选的,节点查询模块10还用于:分别向各缓存节点发送心跳数据包,并接收各缓存节点针对所述心跳数据包的数据响应;
若任一所述缓存节点针对所述心跳数据包的数据响应时间大于时间阈值,则在所述分布式缓存集群中删除所述缓存节点。
哈希寻址模块11,用于根据预设哈希函数生成哈希环,并根据各缓存节点和各键值的哈希值,分别在所述哈希环中进行位置映射。
关系获取模块12,用于获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,所述节点绑定关系用于表征不同所述键值与对应缓存节点之间的绑定关系。
可选的,关系获取模块12还用于:若接收到节点添加指令,则计算待添加缓存节点的哈希值,并根据所述待添加缓存节点的哈希值确定所述哈希环上的目标位置;
根据所述目标位置,在所述哈希环中对所述待添加缓存节点进行节点添加;
获取节点添加后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系;
若接收到节点删除指令,则根据所述节点删除指令确定目标缓存节点,并在所述哈希环上删除所述目标缓存节点;
获取节点删除后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系。
进一步地,关系获取模块12还用于:在位置映射后所述哈希环上,以各键值的位置为起点,沿顺时针顺序进行所述缓存节点的查询;
将各键值与对应查询到的首个所述缓存节点确定为所述绑定关系。
数据反馈模块13,用于若接收到任一客户端的数据读取指令,则根据所述数据读取指令中的键值和所述节点绑定关系,确定所述哈希环上的目标节点,并根据所述目标节点的缓存数据对所述客户端进行数据反馈。
可选的,数据反馈模块13还用于:获取所述数据读取指令中的数据标识,并根据所述数据标识在所述目标节点的缓存数据中进行数据匹配;
若所述目标节点的缓存数据中有匹配到数据,则将匹配到的数据对所述客户端进行数据反馈;
若所述目标节点的缓存数据中未匹配到数据,则根据所述数据标识在分布式对象存储中进行数据匹配,得到目标读取数据;
将所述目标读取数据对所述客户端进行数据反馈,并将所述目标读取数据存储至所述目标节点的缓存数据中。
优选的,分布式缓存集群管理***100还包括缓存淘汰模块14,用于分别获取所述分布式缓存集群中各缓存数据的数据存储时间,并根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表;
若接收到数据存储指令,则分别获取所述分布式缓存集群的剩余存储值和待存储数据的数据值;
若所述剩余存储值与所述待存储数据的数据值之间满足数据删除条件,则根据所述数据缓存链表对所述缓存数据进行数据删除;
将所述待存储数据存储至所述分布式缓存集群,并根据所述待存储数据的数据存储时间,将所述待存储数据添加至所述数据缓存链表。
进一步地,缓存淘汰模块14还用于:若任一所述缓存数据被访问时,则在所述数据缓存链表中,将被访问的所述缓存数据移动至链表头部;
所述根据所述数据缓存链表对所述缓存数据进行数据删除,包括:
将所述数据缓存链表中链表尾部的所述缓存数据进行删除。
本实施例,通过各缓存节点和各键值的哈希值,分别在哈希环中进行位置映射,以采用一致哈希的方式在哈希环上自动对各缓存节点和各键值进行寻址,使得在分布式缓存场景中,相同的键值每次的请求都能读取到相同的缓存节点上,进而提高了分布式缓存集群的管理效率,通过获取位置映射后哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,基于节点绑定关系能自动确定到客户端所请求的目标节点,并基于目标节点的缓存数据对客户端进行数据反馈,提高了分布式缓存场景中的数据读取效率。
实施例四
图7是本申请第四实施例提供的一种终端设备2的结构框图。如图7所示,该实施例的终端设备2包括:处理器20、存储器21以及存储在所述存储器21中并可在所述处理器20上运行的计算机程序22,例如分布式缓存集群管理方法的程序。处理器20执行所述计算机程序22时实现上述各个分布式缓存集群管理方法各实施例中的步骤。
示例性的,所述计算机程序22可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器21中,并由所述处理器20执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序22在所述终端设备2中的执行过程。所述终端设备可包括,但不仅限于,处理器20、存储器21。
所称处理器20可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器21可以是所述终端设备2的内部存储单元,例如终端设备2的硬盘或内存。所述存储器21也可以是所述终端设备2的外部存储设备,例如所述终端设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器21还可以既包括所述终端设备2的内部存储单元也包括外部存储设备。所述存储器21用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器21还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。其中,计算机可读存储介质可以是非易失性的,也可以是易失性的。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种分布式缓存集群管理方法,其特征在于,所述方法包括:
获取分布式缓存集群的拓扑结构,并根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值;
根据预设哈希函数生成哈希环,并根据各缓存节点和各键值的哈希值,分别在所述哈希环中进行位置映射;
获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,所述节点绑定关系用于表征不同所述键值与对应缓存节点之间的绑定关系;
若接收到任一客户端的数据读取指令,则根据所述数据读取指令中的键值和所述节点绑定关系,确定所述哈希环上的目标节点,并根据所述目标节点的缓存数据对所述客户端进行数据反馈。
2.如权利要求1所述的分布式缓存集群管理方法,其特征在于,所述方法还包括:
分别获取所述分布式缓存集群中各缓存数据的数据存储时间,并根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表;
若接收到数据存储指令,则分别获取所述分布式缓存集群的剩余存储值和待存储数据的数据值;
若所述剩余存储值与所述待存储数据的数据值之间满足数据删除条件,则根据所述数据缓存链表对所述缓存数据进行数据删除;
将所述待存储数据存储至所述分布式缓存集群,并根据所述待存储数据的数据存储时间,将所述待存储数据添加至所述数据缓存链表。
3.如权利要求2所述的分布式缓存集群管理方法,其特征在于,所述根据所述数据存储时间对各缓存数据进行排序,得到数据缓存链表之后,还包括:
若任一所述缓存数据被访问时,则在所述数据缓存链表中,将被访问的所述缓存数据移动至链表头部;
所述根据所述数据缓存链表对所述缓存数据进行数据删除,包括:
将所述数据缓存链表中链表尾部的所述缓存数据进行删除。
4.如权利要求1所述的分布式缓存集群管理方法,其特征在于,所述根据所述目标节点的缓存数据对所述客户端进行数据反馈,包括:
获取所述数据读取指令中的数据标识,并根据所述数据标识在所述目标节点的缓存数据中进行数据匹配;
若所述目标节点的缓存数据中有匹配到数据,则将匹配到的数据对所述客户端进行数据反馈;
若所述目标节点的缓存数据中未匹配到数据,则根据所述数据标识在分布式对象存储中进行数据匹配,得到目标读取数据;
将所述目标读取数据对所述客户端进行数据反馈,并将所述目标读取数据存储至所述目标节点的缓存数据中。
5.如权利要求1所述的分布式缓存集群管理方法,其特征在于,所述获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系之后,还包括:
若接收到节点添加指令,则计算待添加缓存节点的哈希值,并根据所述待添加缓存节点的哈希值确定所述哈希环上的目标位置;
根据所述目标位置,在所述哈希环中对所述待添加缓存节点进行节点添加;
获取节点添加后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系;
若接收到节点删除指令,则根据所述节点删除指令确定目标缓存节点,并在所述哈希环上删除所述目标缓存节点;
获取节点删除后所述哈希环上各键值与各缓存节点之间的位置关系,并根据获取到的位置关系更新所述节点绑定关系。
6.如权利要求1所述的分布式缓存集群管理方法,其特征在于,所述获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,包括:
在位置映射后所述哈希环上,以各键值的位置为起点,沿顺时针顺序进行所述缓存节点的查询;
将各键值与对应查询到的首个所述缓存节点确定为所述绑定关系。
7.如权利要求1至6任一所述的分布式缓存集群管理方法,其特征在于,所述根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值之后,还包括:
分别向各缓存节点发送心跳数据包,并接收各缓存节点针对所述心跳数据包的数据响应;
若任一所述缓存节点针对所述心跳数据包的数据响应时间大于时间阈值,则在所述分布式缓存集群中删除所述缓存节点。
8.一种分布式缓存集群管理***,其特征在于,所述***包括:
节点查询模块,用于获取分布式缓存集群的拓扑结构,并根据所述拓扑结构分别查询分布式缓存集群中的缓存节点和键值;
哈希寻址模块,用于根据预设哈希函数生成哈希环,并根据各缓存节点和各键值的哈希值,分别在所述哈希环中进行位置映射;
关系获取模块,用于获取位置映射后所述哈希环上各键值与各缓存节点之间的位置关系,得到节点绑定关系,所述节点绑定关系用于表征不同所述键值与对应缓存节点之间的绑定关系;
数据反馈模块,用于若接收到任一客户端的数据读取指令,则根据所述数据读取指令中的键值和所述节点绑定关系,确定所述哈希环上的目标节点,并根据所述目标节点的缓存数据对所述客户端进行数据反馈。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058750.5A CN115442439A (zh) | 2022-08-31 | 2022-08-31 | 分布式缓存集群管理方法、***、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058750.5A CN115442439A (zh) | 2022-08-31 | 2022-08-31 | 分布式缓存集群管理方法、***、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115442439A true CN115442439A (zh) | 2022-12-06 |
Family
ID=84244929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058750.5A Pending CN115442439A (zh) | 2022-08-31 | 2022-08-31 | 分布式缓存集群管理方法、***、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115442439A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878513A (zh) * | 2023-02-21 | 2023-03-31 | 中移动信息技术有限公司 | 数据存储和数据查询方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储***及缓存方法 |
CN106201924A (zh) * | 2016-07-19 | 2016-12-07 | 深圳欧德蒙科技有限公司 | 一种数据缓存方法、装置及*** |
CN107180118A (zh) * | 2017-07-04 | 2017-09-19 | 郑州云海信息技术有限公司 | 一种文件***缓存数据管理方法及装置 |
CN108810041A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种分布式缓存***的数据写入及扩容方法、装置 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | ***通信集团山东有限公司 | 一种分布式数据缓存方法及*** |
CN114138690A (zh) * | 2021-11-26 | 2022-03-04 | 浙江中控技术股份有限公司 | 缓存淘汰方法、装置、电子装置和存储介质 |
CN114185678A (zh) * | 2021-12-14 | 2022-03-15 | 建信金融科技有限责任公司 | 数据存储方法、装置、设备及存储介质 |
-
2022
- 2022-08-31 CN CN202211058750.5A patent/CN115442439A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储***及缓存方法 |
CN106201924A (zh) * | 2016-07-19 | 2016-12-07 | 深圳欧德蒙科技有限公司 | 一种数据缓存方法、装置及*** |
CN108810041A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种分布式缓存***的数据写入及扩容方法、装置 |
CN107180118A (zh) * | 2017-07-04 | 2017-09-19 | 郑州云海信息技术有限公司 | 一种文件***缓存数据管理方法及装置 |
CN111274310A (zh) * | 2018-12-05 | 2020-06-12 | ***通信集团山东有限公司 | 一种分布式数据缓存方法及*** |
CN114138690A (zh) * | 2021-11-26 | 2022-03-04 | 浙江中控技术股份有限公司 | 缓存淘汰方法、装置、电子装置和存储介质 |
CN114185678A (zh) * | 2021-12-14 | 2022-03-15 | 建信金融科技有限责任公司 | 数据存储方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
吃透JAVA: "吃透Redis(八):缓存淘汰篇-LRU算法", pages 2 - 3, Retrieved from the Internet <URL:https://blog.csdn.net/u013277209/article/details/126370384> * |
柒染: "如何理解一致性hash算法和实现", pages 1 - 7, Retrieved from the Internet <URL:https://www.yisu.com/zixun/587800.html> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878513A (zh) * | 2023-02-21 | 2023-03-31 | 中移动信息技术有限公司 | 数据存储和数据查询方法、装置、设备及存储介质 |
CN115878513B (zh) * | 2023-02-21 | 2023-08-15 | 中移动信息技术有限公司 | 数据存储和数据查询方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
AU2016382908B2 (en) | Short link processing method, device and server | |
US7856437B2 (en) | Storing nodes representing respective chunks of files in a data store | |
US7725437B2 (en) | Providing an index for a data store | |
CN107491523B (zh) | 存储数据对象的方法及装置 | |
CN111475105B (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
CN106503008B (zh) | 文件存储方法和装置及文件查询方法和装置 | |
CN110908589B (zh) | 数据文件的处理方法、装置、***和存储介质 | |
US20210243221A1 (en) | Systems and methods for rapidly generating security ratings | |
CN113032335A (zh) | 文件访问方法、装置、设备及存储介质 | |
CN111782707A (zh) | 一种数据查询方法及*** | |
CN109165096B (zh) | web集群的缓存利用***及方法 | |
CN111488377A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN108154024B (zh) | 一种数据检索方法、装置及电子设备 | |
CN115442439A (zh) | 分布式缓存集群管理方法、***、终端及存储介质 | |
CN111045988B (zh) | 文件查找方法、设备和计算机程序产品 | |
CN112822289A (zh) | 数据上传读取方法、***、设备及存储介质 | |
CN114205424B (zh) | 账单文件解压方法、装置、计算机设备和存储介质 | |
CN112130747A (zh) | 分布式对象存储***及数据读写方法 | |
US7058773B1 (en) | System and method for managing data in a distributed system | |
CN112395613B (zh) | 静态特征库的加载方法、装置及设备 | |
CN113806389A (zh) | 一种数据处理方法、装置、计算设备与存储介质 | |
CN113411364A (zh) | 资源获取方法、装置及服务器 | |
CN114375565A (zh) | 一种文件块下载方法及装置 | |
CN117009439B (zh) | 数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |