数据缓存方法、数据查询方法及装置制造方法及图纸

技术编号:15391538 阅读:57 留言:0更新日期:2017-05-19 04:48
本申请公开了一种数据缓存方法、数据查询方法及装置,该方法包括:接收待缓存数据,针对待缓存数据包括的每个第一数据元素,执行:获取第一数据元素的标识;确定大数据终端的内存中是否保存第一数据元素的标识对应的已有数据元素;若确定内存中保存已有数据元素,则将已有数据元素替换为第一数据元素;若确定内存中未保存已有数据元素,确定内存的存储量是否达到设定阈值;若内存的存储量未达到设定阈值,则将第一数据元素及其标识保存在内存中;若内存的存储量达到设定阈值,则将第一数据元素保存在大数据终端的外部存储器中,并将第一数据元素的标识和存储位置保存在内存中。该方案可以有效避免相关技术中的问题。

Data cache method, data inquiry method and device

The invention discloses a device and a method of data cache, data query method, the method includes: receiving data cache, the first needle to treat each data element, including the implementation of cache data obtaining a first data element identifier; determine the data terminal in the memory is not corresponding to existing data element identifier storing the first data element if it is determined; preservation of existing data elements in memory, the existing data element is replaced with the first data elements; if the data element is not stored in memory, determine whether the storage memory reaches the preset threshold value; if the memory is not up to the threshold, the first data element and its identifier is stored in the memory; if the amount of storage memory reaches a set threshold, the first data elements stored in the external memory data terminal, and the first The identification and storage locations of data elements are stored in memory. This scheme can effectively avoid the problems in related technologies.

【技术实现步骤摘要】
数据缓存方法、数据查询方法及装置
本申请涉及网络
,尤其涉及一种数据缓存方法、数据查询方法及装置。
技术介绍
随着网络技术的飞速发展,越来越多的用户通过网络获取信息,网站需要处理的数据量也越来越大,当今已然进入大数据时代。网站的服务端通常包括至少一个大数据终端、推送服务器和数据库,其中,不同的大数据终端可能处理用户的不同业务,各个大数据终端之间有时也会进行数据交互,也就是说,每个大数据终端可能会处理来自用户和其他大数据终端的数据获取请求,大数据终端从接收数据获取请求到反馈数据所需的时间为响应时间,很显然,响应时间越短,大数据终端的性能越好,用户体验也越好。为了减少响应时间,推送服务器会以设定周期获取数据库中的全量数据,然后再将每个大数据终端的数据推送给对应的大数据终端。按照相关的数据缓存方法,各个大数据终端以设定周期接收推送服务器推送的数据,若大数据终端的内存中存在已有数据,则将接收到的数据替换已有数据,若大数据终端的内存中不存在已有数据,则直接将接收到的数据保存在内存中,当大数据终端接收到数据获取请求后,会从内存缓存的数据中获取需要的数据元素,并反馈给发送数据获取请求的用户或者其它大数据终端。上述数据缓存方法中,为保证大数据终端可以正常处理数据获取请求,在替换已有数据的过程中,内存中会保存两份数据,由于这两份数据都是在数据库中保存的该大数据终端所需的全部数据元素,数据量非常大,替换数据的过程会占用很多内存资源,从而容易造成内存不足,甚至会引发内存回收和大数据终端宕机。
技术实现思路
本申请实施例提供一种数据缓存方法、数据查询方法及装置,用以解决相关技术中存在的替换数据的过程占用很多内存资源,从而容易造成内存不足,甚至会引发内存回收和大数据终端宕机的问题。根据本申请实施例,提供一种数据缓存方法,应用在大数据终端中,包括:接收待缓存数据,针对所述待缓存数据包括的每个第一数据元素,执行:获取所述第一数据元素的标识;确定所述大数据终端的内存中是否保存所述第一数据元素的标识对应的已有数据元素;若确定所述内存中保存所述已有数据元素,则将所述已有数据元素替换为所述第一数据元素;若确定所述内存中未保存所述已有数据元素,确定所述内存的存储量是否达到设定阈值;若所述内存的存储量未达到所述设定阈值,则将所述第一数据元素及其标识保存在所述内存中;若所述内存的存储量达到所述设定阈值,则将所述第一数据元素保存在所述大数据终端的外部存储器中,并将所述第一数据元素的标识和存储位置保存在所述内存中。具体的,获取所述第一数据元素的标识,具体包括:从所述第一数据元素中查找选定字段;获取所述选定字段的数值,得到所述第一数据元素的标识。具体的,确定所述大数据终端的内存中是否保存所述第一数据元素的标识对应的已有数据元素,具体包括:获取所述内存中保存的带有索引的双向链表;确定所述双向链表的索引中是否包括所述第一数据元素的标识;若所述双向链表的索引中包括所述第一数据元素的标识,则确定所述内存中保存所述已有数据元素;若所述双向链表的索引中未包括所述第一数据元素的标识,则确定所述内存中未保存所述已有数据元素。可选的,确定所述内存中保存所述已有数据元素之后,还包括:获取所述双向链表中所述第一数据元素的标识对应的第一结点;从所述第一结点的数据字段获取所述已有数据元素;对比所述第一数据元素包括的内容与所述已有数据元素包括的内容是否完全相同;若所述第一数据元素包括的内容与所述已有数据元素包括的内容不完全相同,则执行将所述已有数据元素替换为所述第一数据元素的步骤。具体的,将所述第一数据元素及其标识保存在所述内存中,具体包括:在所述双向链表的索引中保存所述第一数据元素的标识;在所述双向链表中建立与所述第一数据元素的标识对应的第二结点,并将所述第一数据元素保存在所述第二节点的数据字段中。具体的,将所述第一数据元素保存在所述大数据终端的外部存储器中,并将所述第一数据元素的标识和存储位置保存在所述内存中,具体包括:将所述第一数据元素保存在所述大数据终端的外部存储器的文件中;获取所述第一数据元素在所述大数据终端的外部存储器的存储位置;在所述内存保存的标识与存储位置的对应关系中建立包括所述第一数据元素的标识与存储位置的表项。可选的,还包括:接收用户或者其它大数据终端发送的携带第二数据元素的标识的数据获取请求;根据所述第二数据元素的标识在所述内存中查询所述第二数据元素或者所述第二数据元素的存储位置;若查询到所述第二数据元素,则将所述第二数据元素发送给所述用户或者其它大数据终端;若查询到所述第二数据元素的存储位置,则根据所述第二数据元素的存储位置从所述外部存储器获取所述第二数据元素,并发送给所述用户或者其它大数据终端;以及,将所述第二数据元素保存在所述内存中。可选的,根据所述第二数据元素的标识在所述内存中查询所述第二数据元素或者所述第二数据元素的存储位置,具体包括:分别从所述内存中保存的带有索引的双向链表中、以及标识与存储位置的对应关系中查找所述第二数据元素的标识;若在所述双向链表中查找到所述第二数据元素的标识,则从所述双向链表中获取所述第二数据元素的标识对应的第三结点,并从所述第三结点的数据字段获取所述第二数据元素;若在所述对应关系中查找到包括所述第二数据元素的标识的表项,则在所述表项中获取所述第二数据元素的存储位置。可选的,查询到所述第二数据元素之后,还包括:更新所述第三结点中所述第二数据元素的被访问次数;以及,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针。具体的,将所述第二数据元素保存在所述内存中,具体包括:判断所述内存的存储量是否达到所述设定阈值;若所述内存的存储量达到所述设定阈值,则确定所述内存中保存的被访问次数最少的第三数据元素,将所述第三数据元素保存在所述外部存储器中,并在所述对应关系中保存包括所述第三数据元素的标识和存储位置的表项;删除所述双向链表的索引中保存的所述第三数据元素的标识和所述双向链表中所述第三数据元素所在的结点;在所述双向链表中建立与所述第二数据元素的标识对应的第四结点,将所述第二数据元素保存在所述第四节点的数据字段中,并在所述双向链表的索引中保存所述第二数据元素的标识;更新所述第四结点中所述第二数据元素的被访问次数,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针;若所述内存的存储量未达到所述设定阈值,则在所述双向链表中建立与所述第二数据元素的标识对应的第五结点,将所述第二数据元素保存在所述第五节点的数据字段中,并在所述双向链表的索引中保存所述第二数据元素的标识;更新所述第五结点中所述第二数据元素的被访问次数,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针。根据本申请实施例,还提供一种数据查询方法,应用在大数据终端中,包括:接收用户或者其它大数据终端发送的携带第二数据元素的标识的数据获取请求;根据所述第二数据元素的标识在所述大数据终端的内存中查询所述第二数据元素或者所述第二数据元素的存储位置;若查询到所述第二数据元素,则将所述第二数据元素发送给所述用户或者其它大数据终端;若查询到所述第二数据元素的本文档来自技高网...
数据缓存方法、数据查询方法及装置

【技术保护点】
一种数据缓存方法,应用在大数据终端中,其特征在于,包括:接收待缓存数据,针对所述待缓存数据包括的每个第一数据元素,执行:获取所述第一数据元素的标识;确定所述大数据终端的内存中是否保存所述第一数据元素的标识对应的已有数据元素;若确定所述内存中保存所述已有数据元素,则将所述已有数据元素替换为所述第一数据元素;若确定所述内存中未保存所述已有数据元素,确定所述内存的存储量是否达到设定阈值;若所述内存的存储量未达到所述设定阈值,则将所述第一数据元素及其标识保存在所述内存中;若所述内存的存储量达到所述设定阈值,则将所述第一数据元素保存在所述大数据终端的外部存储器中,并将所述第一数据元素的标识和存储位置保存在所述内存中。

【技术特征摘要】
1.一种数据缓存方法,应用在大数据终端中,其特征在于,包括:接收待缓存数据,针对所述待缓存数据包括的每个第一数据元素,执行:获取所述第一数据元素的标识;确定所述大数据终端的内存中是否保存所述第一数据元素的标识对应的已有数据元素;若确定所述内存中保存所述已有数据元素,则将所述已有数据元素替换为所述第一数据元素;若确定所述内存中未保存所述已有数据元素,确定所述内存的存储量是否达到设定阈值;若所述内存的存储量未达到所述设定阈值,则将所述第一数据元素及其标识保存在所述内存中;若所述内存的存储量达到所述设定阈值,则将所述第一数据元素保存在所述大数据终端的外部存储器中,并将所述第一数据元素的标识和存储位置保存在所述内存中。2.如权利要求1所述的方法,其特征在于,获取所述第一数据元素的标识,具体包括:从所述第一数据元素中查找选定字段;获取所述选定字段的数值,得到所述第一数据元素的标识。3.如权利要求1所述的方法,其特征在于,确定所述大数据终端的内存中是否保存所述第一数据元素的标识对应的已有数据元素,具体包括:获取所述内存中保存的带有索引的双向链表;确定所述双向链表的索引中是否包括所述第一数据元素的标识;若所述双向链表的索引中包括所述第一数据元素的标识,则确定所述内存中保存所述已有数据元素;若所述双向链表的索引中未包括所述第一数据元素的标识,则确定所述内存中未保存所述已有数据元素。4.如权利要求3所述的方法,其特征在于,确定所述内存中保存所述已有数据元素之后,还包括:获取所述双向链表中所述第一数据元素的标识对应的第一结点;从所述第一结点的数据字段获取所述已有数据元素;对比所述第一数据元素包括的内容与所述已有数据元素包括的内容是否完全相同;若所述第一数据元素包括的内容与所述已有数据元素包括的内容不完全相同,则执行将所述已有数据元素替换为所述第一数据元素的步骤。5.如权利要求4所述的方法,其特征在于,将所述第一数据元素及其标识保存在所述内存中,具体包括:在所述双向链表的索引中保存所述第一数据元素的标识;在所述双向链表中建立与所述第一数据元素的标识对应的第二结点,并将所述第一数据元素保存在所述第二节点的数据字段中。6.如权利要求4所述的方法,其特征在于,将所述第一数据元素保存在所述大数据终端的外部存储器中,并将所述第一数据元素的标识和存储位置保存在所述内存中,具体包括:将所述第一数据元素保存在所述大数据终端的外部存储器的文件中;获取所述第一数据元素在所述大数据终端的外部存储器的存储位置;在所述内存保存的标识与存储位置的对应关系中建立包括所述第一数据元素的标识与存储位置的表项。7.如权利要求1-6任一所述的方法,其特征在于,还包括:接收用户或者其它大数据终端发送的携带第二数据元素的标识的数据获取请求;根据所述第二数据元素的标识在所述内存中查询所述第二数据元素或者所述第二数据元素的存储位置;若查询到所述第二数据元素,则将所述第二数据元素发送给所述用户或者其它大数据终端;若查询到所述第二数据元素的存储位置,则根据所述第二数据元素的存储位置从所述外部存储器获取所述第二数据元素,并发送给所述用户或者其它大数据终端;以及,将所述第二数据元素保存在所述内存中。8.如权利要求7所述的方法,其特征在于,根据所述第二数据元素的标识在所述内存中查询所述第二数据元素或者所述第二数据元素的存储位置,具体包括:分别从所述内存中保存的带有索引的双向链表中、以及标识与存储位置的对应关系中查找所述第二数据元素的标识;若在所述双向链表中查找到所述第二数据元素的标识,则从所述双向链表中获取所述第二数据元素的标识对应的第三结点,并从所述第三结点的数据字段获取所述第二数据元素;若在所述对应关系中查找到包括所述第二数据元素的标识的表项,则在所述表项中获取所述第二数据元素的存储位置。9.如权利要求8所述的方法,其特征在于,查询到所述第二数据元素之后,还包括:更新所述第三结点中所述第二数据元素的被访问次数;以及,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针。10.如权利要求8所述的方法,其特征在于,将所述第二数据元素保存在所述内存中,具体包括:判断所述内存的存储量是否达到所述设定阈值;若所述内存的存储量达到所述设定阈值,则确定所述内存中保存的被访问次数最少的第三数据元素,将所述第三数据元素保存在所述外部存储器中,并在所述对应关系中保存包括所述第三数据元素的标识和存储位置的表项;删除所述双向链表的索引中保存的所述第三数据元素的标识和所述双向链表中所述第三数据元素所在的结点;在所述双向链表中建立与所述第二数据元素的标识对应的第四结点,将所述第二数据元素保存在所述第四节点的数据字段中,并在所述双向链表的索引中保存所述第二数据元素的标识;更新所述第四结点中所述第二数据元素的被访问次数,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针;若所述内存的存储量未达到所述设定阈值,则在所述双向链表中建立与所述第二数据元素的标识对应的第五结点,将所述第二数据元素保存在所述第五节点的数据字段中,并在所述双向链表的索引中保存所述第二数据元素的标识;更新所述第五结点中所述第二数据元素的被访问次数,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针。11.一种数据查询方法,应用在大数据终端中,其特征在于,包括:接收用户或者其它大数据终端发送的携带第二数据元素的标识的数据获取请求;根据所述第二数据元素的标识在所述大数据终端的内存中查询所述第二数据元素或者所述第二数据元素的存储位置;若查询到所述第二数据元素,则将所述第二数据元素发送给所述用户或者其它大数据终端;若查询到所述第二数据元素的存储位置,则根据所述第二数据元素的存储位置从所述大数据终端的外部存储器获取所述第二数据元素,并发送给所述用户或者其它大数据终端;以及,将所述第二数据元素保存在所述内存中。12.如权利要求11所述的方法,其特征在于,根据所述第二数据元素的标识在所述内存中查询所述第二数据元素或者所述第二数据元素的存储位置,具体包括:分别从所述内存中保存的带有索引的双向链表中、以及标识与存储位置的对应关系中查找所述第二数据元素的标识;若在所述双向链表中查找到所述第二数据元素的标识,则从所述双向链表中获取所述第二数据元素的标识对应的第三结点,并从所述第三结点的数据字段获取所述第二数据元素;若在所述对应关系中查找到包括所述第二数据元素的标识的表项,则在所述表项中获取所述第二数据元素的存储位置。13.如权利要求11所述的方法,其特征在于,查询到所述第二数据元素之后,还包括:更新所述第三结点中所述第二数据元素的被访问次数;以及,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针。14.如权利要求11-13任一所述的方法,其特征在于,将所述第二数据元素保存在所述内存中,具体包括:判断所述内存的存储量是否达到所述设定阈值;若所述内存的存储量达到所述设定阈值,则确定所述内存中保存的被访问次数最少的第三数据元素,将所述第三数据元素保存在所述外部存储器中,并在所述对应关系中保存包括所述第三数据元素的标识和存储位置的表项;删除所述双向链表的索引中保存的所述第三数据元素的标识和所述双向链表中所述第三数据元素所在的结点;在所述双向链表中建立与所述第二数据元素的标识对应的第四结点,将所述第二数据元素保存在所述第四节点的数据字段中,并在所述双向链表的索引中保存所述第二数据元素的标识;更新所述第四结点中所述第二数据元素的被访问次数,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针;若所述内存的存储量未达到所述设定阈值,则在所述双向链表中建立与所述第二数据元素的标识对应的第五结点,将所述第二数据元素保存在所述第五节点的数据字段中,并在所述双向链表的索引中保存所述第二数据元素的标识;更新所述第五结点中所述第二数据元素的被访问次数,按照被访问次数调整所述双向链表中各个结点的位置,并相应调整所述双向链表中各个结点中的指针。15.一种数据缓存装置,应用在大数据终端中,其特征在于,包括:第一接收单元,用于接收待缓存数据,针对所述待缓存数据包括的每个第一数据元素,执行:获取单元,用于获取所述第一数据元素的标识;...

【专利技术属性】
技术研发人员:苏国庆
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1