一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种热点数据缓存方法、系统及电子设备与流程

2022-02-20 20:20:01 来源:中国专利 TAG:


1.本发明涉及热点数据缓存技术领域,具体涉及一种热点数据缓存方法、系统及电子设备。


背景技术:

2.随着科技的发展,网络通信技术在生活中的应用愈加广泛,各种形式的数据产生量越来越大,系统每天都会收入大量的数据进行存储,现阶段的情况是每天都要应对大量的数据查询。保障高效、准确的访问日常工作和生活中的各种热点数据是很重要的,但是在日常生活中常常会存在因热点数据高并发访问而造成读取速度变慢甚至造成系统崩溃的问题,影响查询者的使用体验。


技术实现要素:

3.有鉴于此,本发明实施例提供了一种热点数据缓存方法、系统及电子设备,以解决因热点数据高并发访问造成读取速度变慢甚至造成系统崩溃的问题。
4.为达到上述目的,本发明提供如下技术方案:本发明实施例提供了一种热点数据缓存方法,包括:接收目标请求的参数数据;将二级缓存区的热点数据与所述参数数据进行匹配,将匹配到的第一热点数据进行下发,并更新所述第一热点数据在所述二级缓存区的生存状态,所述二级缓存区存储有与历史请求对应的热点数据;若在所述二级缓存区的热点数据中未匹配到与所述参数数据对应的第一热点数据,则从一级缓存区内提取与所述参数数据对应的原始数据打包形成第二热点数据,所述一级缓存区用于存储各个热点对应的原始数据;将所述第二热点数据存储至所述二级缓存区,并通过所述二级缓存区对所述第二热点数据进行下发。
5.可选的,所述更新所述第一热点数据在所述二级缓存区的生存状态,包括:获取所述第二热点数据对应的当前剩余生存时长;对所述当前剩余生存时长进行延长更新。
6.可选的,所述热点数据缓存方法,还包括:将所述二级缓存区内剩余生存时长为零的热点数据从所述二级缓存区移除。
7.可选的,所述获取所述第二热点数据对应的当前剩余生存时长,包括:获取所述第二热点数据在所述二级缓存区的当前存储时长;基于预设生存时长和所述当前存储时长,计算所述第二热点数据对应的当前剩余生存时长。
8.可选的,所述热点数据缓存方法,还包括:对所述一级缓存区内存储各个热点及其对应的原始数据进行更新。
9.可选的,所述对所述一级缓存区内存储各个热点及其对应的原始数据进行更新,包括:按照预设的时间间隔进行划分构成时间窗口队列,每个时间窗口内包含对应时间范围内的原始数据,所述时间窗口队列随着时间变化移动;将超出预设时间跨度的时间窗口销毁,同时生成新的时间窗口进入队列;从数据库提取新的时间窗口对应时间范围内的原始数据放入新的时间窗口。
10.可选的,所述从一级缓存区内提取与所述参数数据对应的原始数据打包形成第二热点数据,包括:将所述参数数据与所述一级缓存区内的原始数据进行匹配;将匹配到的原始数据打包形成第二热点数据;若未在所述一级缓存区内匹配到原始数据,则将所述参数数据发送至数据库;将数据库返回的与所述参数数据对应的原始数据打包形成所述第二热点数据。
11.本发明实施例还提供了一种热点数据缓存系统,包括:接收模块:用于接收目标请求的参数数据;二级缓存模块:用于将二级缓存区的热点数据与所述参数数据进行匹配,将匹配到的第一热点数据进行下发,并更新所述第一热点数据在所述二级缓存区的生存状态,所述二级缓存区存储有与历史请求对应的热点数据;一级缓存模块:用于若在所述二级缓存区的热点数据中未匹配到与所述参数数据对应的第一热点数据,则从一级缓存区内提取与所述参数数据对应的原始数据打包形成第二热点数据,所述一级缓存区用于存储各个热点对应的原始数据;转存下发模块:用于将所述第二热点数据存储至所述二级缓存区,并通过所述二级缓存区对所述第二热点数据进行下发。
12.本发明实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明实施例提供的热点数据缓存方法。
13.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明实施例提供的热点数据缓存方法。
14.本发明技术方案,具有如下优点:本发明提供了一种热点数据缓存方法,通过接收目标请求的参数数据;将二级缓存区的热点数据与参数数据进行匹配,将匹配到的第一热点数据进行下发,并更新第一热点数据在二级缓存区的生存状态,二级缓存区存储有与历史请求对应的热点数据;若在二级缓存区的热点数据中未匹配到与参数数据对应的第一热点数据,则从一级缓存区内提取与参数数据对应的原始数据打包形成第二热点数据,一级缓存区用于存储各个热点对应的原始数据;将第二热点数据存储至二级缓存区,并通过二级缓存区对第二热点数据进行下发。本发明通过采用两个级别的缓存方式对用户操作和原始生产数据源进行双向隔离,不仅可以减少多用户数据请求对数据源的资源占用,还能保障所有用户访问数据完整和有效,大大提高了高并发访问数据的吞吐量,有效缓解了因热点数据高并发访问造成读取速
度变慢甚至造成系统崩溃的问题。
附图说明
15.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明实施例中的热点数据缓存方法的流程图;图2为本发明实施例中更新第一热点数据在二级缓存区的生存状态的流程图;图3为本发明实施例中获取第二热点数据对应的当前剩余生存时长的流程图;图4为本发明实施例中从一级缓存区内提取与参数数据对应的原始数据打包形成第二热点数据的流程图;图5为本发明实施例中对一级缓存区内存储各个热点及其对应的原始数据进行更新的流程图;图6为本发明实施例中对目标请求进行验证的流程图;图7为本发明实施例中的热点数据缓存系统的结构示意图;图8为本发明实施例中的电子设备的结构示意图。
具体实施方式
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.根据本发明实施例,提供了一种热点数据缓存方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
19.在本实施例中提供了一种热点数据缓存方法,如图1所示,该热点数据缓存方法包括如下步骤:步骤s1:接收目标请求的参数数据。
20.具体的,接收用户发送的目标请求,并提取目标请求的参数数据,作为后续查找请求数据的依据,示例性地,请求参数数据在进行数据处理后得到一个长度为8字节的数据,第0~1字节为请求的uri映射的功能码进行填充,第2~3字节为起始时间戳进行crc16验算填充,第4~5字节为结束时间戳进行crc16 验算填充,第6~7字节为所有请求热点位id进行crc16验算填充。在参数数据的处理过程中结合crc16 校验运算和数据移位保证处理后的参数数据的固定性和唯一性。
21.步骤s2:将二级缓存区的热点数据与参数数据进行匹配,将匹配到的第一热点数据进行下发,并更新第一热点数据在二级缓存区的生存状态,二级缓存区存储有与历史请求对应的热点数据。具体的,热点数据通过哈希表的方式进行存储,参数数据通过计算生成
唯一的请求码,将请求码与热点数据在哈希表中的关键码值进行匹配,从而进行访问,此处的存储匹配方式以哈希表为例但不以此为限。二级缓存区对所有的请求打包的数据进行热点储存,每一个创建的热点缓存数据都有一个预设的生存时长。生存时长会随着该缓存请求的热度进行时间延长,直至该缓存失去热度并在超时后移除该缓存,从而保证其资源空间的可重复利用。
22.步骤s3:若在二级缓存区的热点数据中未匹配到与参数数据对应的第一热点数据,则从一级缓存区内提取与参数数据对应的原始数据打包形成第二热点数据,一级缓存区用于存储各个热点对应的原始数据。具体的,一级缓存区存对所有时间跨度范围内的热点数据的原始数据进行缓存。
23.步骤s4:将第二热点数据存储至二级缓存区,并通过二级缓存区对第二热点数据进行下发。具体的,所有的数据下发均由二级缓存区进行,二级缓存区内未检索到的数据,在一级缓存区查到后打包发送至二级缓存区,由二级缓存区进行下发。
24.通过上述步骤s1至步骤s4,本发明实施例提供的热点数据缓存方法,通过采用两个级别的缓存方式实现对用户操作和原始生产数据源进行双向隔离,不仅可以减少多用户数据请求对数据源的资源占用,还能保障所有用户访问数据完整性和有效性,大大提高了高并发访问数据的吞吐量,有效缓解了因热点数据高并发访问造成读取速度变慢甚至造成系统崩溃的问题。
25.具体地,在一实施例中,上述的热点数据缓存方法,还包括:s5:对一级缓存区内存储各个热点及其对应的原始数据进行更新。具体的,一级缓存区持续与数据源进行数据交换保持一级缓存区数据的时效性。
26.具体地,在一实施例中,上述的步骤s2中更新第一热点数据在二级缓存区的生存状态,如图2所示,具体包括如下步骤:步骤s21:获取第二热点数据对应的当前剩余生存时长。具体的,每个热点数据在发送至第二缓存区时,都会被赋予一定的生存时长,生存时长为预先设定,可以根据需求进行设定。
27.步骤s22:对当前剩余生存时长进行延长更新。具体的,若某个热点在其生存时长范围内被请求频率较高,则根据请求命中该热点缓存的次数,对此热点缓存的生存时长进行延长。例如:每个请求的热点数据在二级缓存区建档后都会赋予一个生存时长(如生存时长为1个小时),若是在有效时间范围内(如建档后半个小时)有请求命中了该缓存,则该缓存生存时长延长半个小时(将时间向后推移半小时)。
28.具体地,在一实施例中,上述的步骤s2中更新第一热点数据在二级缓存区的生存状态,如图2所示,还包括:步骤s23:将二级缓存区内剩余生存时长为零的热点数据从二级缓存区移除。具体的,在生存时长倒计时结束时,将会被从二级缓存区移除,从而保证二级缓存区的资源空间可重复利用。例如:每个请求的热点数据在二级缓存区建档后都会赋予一个生存时长(如生存时长为1个小时),若是在生存时长范围没有其他请求命中该缓存则该缓存销毁,其的生存时长就是一个小时。
29.具体地,在一实施例中,上述的步骤s21,如图3所示,具体包括如下步骤:步骤s211:获取第二热点数据在二级缓存区的当前存储时长。具体的,当前存储时
长为第二热点数据在二级缓存区已经消耗的生存时长。
30.步骤s212:基于预设生存时长和当前存储时长,计算第二热点数据对应的当前剩余生存时长。具体的,剩余生存时长应为预设生存时长内未消耗的时间加上后续延长的时间。
31.具体地,在一实施例中,上述的步骤s3中从一级缓存区内提取与参数数据对应的原始数据打包形成第二热点数据,如图4所示,具体包括如下步骤:步骤s31:将参数数据与一级缓存区内的原始数据进行匹配。具体的,匹配过程与上述参数数据与二级缓存区内的热点数据的匹配过程类似,在此不再进行赘述。
32.步骤s32:将匹配到的原始数据打包形成第二热点数据。具体的,二级缓存区内的热点数据均为将原始数据进行打包后的数据。
33.步骤s33:若未在一级缓存区内匹配到原始数据,则将参数数据发送至数据库。具体的,一级缓存区内的原始数据为预设时间跨度范围内的原始数据,若目标请求的热点数据超出预设时间跨度范围,则需要从数据库进行查找。
34.步骤s34:将数据库返回的与参数数据对应的原始数据打包形成第二热点数据。具体的,数据库返回的数据为目标请求的热点数据的原始数据,该原始数据会在一级缓存区内进行打包,然后发送至二级缓存区进行下发。
35.具体的,二级缓存区内的热点数据均为历史请求的热点数据,均是通过一级缓存区内查找后打包发送至二级缓存区的原始数据,仅通过二级缓存区完成与外界的数据交换,对用户操作和原始数据源进行了双向隔离,保障数据的安全性。同时,还可以对每一个热点的缓存数据设置读写锁,保证其数据安全的同时还兼顾其灵活高效的可读性。
36.具体地,在一实施例中,上述的步骤s5,如图5所示,具体包括如下步骤:步骤s51:按照预设的时间间隔进行划分构成时间窗口队列,每个时间窗口内包含对应时间范围内的原始数据,时间窗口队列随着时间变化移动。具体的,例如,一级缓存区存放的是历史时间24小时内的数据,按照10分钟为一个时间窗口进行队列划分,每个窗口随着时间的变化在时间队列中后移。
37.步骤s52:将超出预设时间跨度的时间窗口销毁,同时生成新的时间窗口进入队列。具体的,当时间窗口超出预设时间跨度24小时的时候,此窗口销毁,同时生成新的10分钟的窗口进入队列,此处预设时间跨度和时间间隔均以此为例,不以此为限,在实际应用过程中可根据需求进行设定。
38.步骤s53:从数据库提取新的时间窗口对应时间范围内的原始数据放入新的时间窗口。具体的,通过从数据库提取10分钟内新的原始数据放入新的时间窗口,从而保持一级缓存区内数据的时效性。
39.具体的,一级缓存区的原始数据是根据时间的持续性进行数据的更新,二级缓存区的热点数据也是会随着时间持续性保持自身的变化,直至自身退热销毁。热点数据是会随着时间的推移渐渐失去它现有的价值,也会产生新的有价值的热点数据,一直维持一个迭代更新的过程。实施例中提到的二级缓存处理方式更加简洁高效,同时不失去其热点数据的特性。
40.具体地,在一实施例中,上述的热点数据缓存方法,还包括对目标请求进行验证,如图6所示,具体包括如下步骤:
步骤s01:获取目标请求的资源标识数据,并验证资源标识数据的合法性。
41.步骤s02:获取目标请求热点的分类标签,并将分类标签与当前缓存热点的范围进行匹配。具体的,二级缓存和数据源可以只包含某类数据,当目标请求不在该范围内时,可以输出一个告警信息,表示请求超范围。
42.步骤s03:根据匹配结果和资源标识数据的合法性验证结果输出目标请求的可执行情况。具体的,主要用于对查询热点的范围进行约束,热点的范围可以根据实际情况进行配置,当目标请求不合法或者超范围时,输出不可执行的信息,对用户进行告知,表明用户所查询的热点不在范围内,避免用户浪费时间进行等待,为用户带来更好的使用体验。
43.下面将结合具体应用示例,对本发明实施例提供的热点数据缓存方法进行详细的说明。
44.参数数据生成的请求码key和热点数据标识tag通过哈希表进行存储以提高目标请求的检索速度。目标请求的参数数据生成的请求码key为8字节长度的数据第0~1字节为请求的uri映射的功能码进行填充,第2~3字节为起始时间戳进行crc16验算填充,第4~5字节为结束时间戳进行crc16 验算填充,第6~7字节为所有请求热点位id进行crc16验算填充。
45.第1步:验证所有目标请求的合法性,主要验证两个维度。

验证请求uri(统一资源标识符)的合法性。

验证当前请求热点tag(热点信息的唯一标识)的合法性,这里主要是对可查询热点进行约束(缓存热点范围可根据实际需求进行配置)。
46.第2步:请求进入二级处理程序会把目标请求关键的参数数据进行算法运算(请求码key的计算)得到一个唯一固定的key,二级缓存区获取到请求码key之后进行本地检索。检索到热点数据后进行热点数据的下发。检索不到则把当前请求下发到一级缓存区。
47.第3步:一级缓存区内进行:

根据请求参数找到对应热点缓存。

根据其时间跨度与间隔进行数据筛查组装,迭代获取所有请求热点直至结束,相同的请求(判断key是否相同)下发到阻塞进行资源等待。
48.第4步:命中热点数据缓存的请求直接进行热点数据下发;没有命中的请求阻塞等待数据组装完成后发送至二级缓存区进行数据下发(用读写锁保证其数据的安全同时也可以阻塞其未命中缓存的请求)。
49.在本实施例中还提供了一种热点数据缓存系统,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
50.本实施例提供一种热点数据缓存系统,如图7所示,包括:接收模块101,用于接收目标请求的参数数据,详细内容参见上述方法实施例中步骤s1的相关描述,在此不再进行赘述。
51.二级缓存模块102,用于将二级缓存区的热点数据与所述参数数据进行匹配,将匹配到的第一热点数据进行下发,并更新所述第一热点数据在所述二级缓存区的生存状态,所述二级缓存区存储有与历史请求对应的热点数据,详细内容参见上述方法实施例中步骤s2的相关描述,在此不再进行赘述。
52.一级缓存模块103,若在所述二级缓存区的热点数据中未匹配到与所述参数数据
对应的第一热点数据,则从一级缓存区内提取与所述参数数据对应的原始数据打包形成第二热点数据,所述一级缓存区用于存储各个热点对应的原始数据,详细内容参见上述方法实施例中步骤s3的相关描述,在此不再进行赘述。
53.转存下发模块104,用于将所述第二热点数据存储至所述二级缓存区,并通过所述二级缓存区对所述第二热点数据进行下发,详细内容参见上述方法实施例中步骤s4的相关描述,在此不再进行赘述。
54.本实施例中的热点数据缓存系统是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
55.上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
56.根据本发明实施例还提供了一种电子设备,如图8所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图8中以通过总线连接为例。
57.处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
58.存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
59.存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
60.一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
61.上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
62.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
63.虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明
的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献