一种数据存储处理方法和装置制造方法及图纸

技术编号:12583372 阅读:53 留言:0更新日期:2015-12-23 23:39
本发明专利技术公开了一种数据存储处理方法和装置,所述方法包括:将数据分别存储到数据库、一级缓存和二级缓存中;当接收到数据查询请求时,先到一级缓存中进行查询;如果一级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从一级缓存无法获得查询结果则到二级缓存中进行查询;如果二级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从二级缓存无法获得查询结果,则到数据库中进行查询;如果数据库中存在所请求的数据则向请求方返回查询到的数据,如果数据库中不存在所请求的数据则向请求方返回查询失败的结果。本发明专利技术的技术方案减轻了数据库的访问压力,具有减少器材损耗,降低人员维护成本的有益效果。

【技术实现步骤摘要】

本专利技术涉及网络通信
,特别涉及一种数据存储处理方法和装置
技术介绍
随着网络通信技术的发展和生活节奏的加快,人们获知信息的方式越来越多,同时获知信息的速度也越来越快,例如,许多事件甚至刚刚发生就在网络上广为流传,而提供这些热点新闻的服务方往往需要应付大量用户在短时间内极大量的数据查询。服务方通常将获取到的数据采用数据库进行存储,存储的数据写入硬盘中,而在用户希望查询数据时如果直接从硬盘读取数据,会造成硬盘访问压力过大。通常采取的做法是将数据库中的数据写入缓存中,当接收到数据查询请求时从缓存中查找数据。然而,对于在短时间内接收到大量数据查询请求的情况,即使在读取速度更快的缓存中查找数据有时也会造成缓存访问压力过大,而一旦读取速度更快的缓存崩溃,大量的数据查询请求就会直接读取数据库的硬盘,由于硬盘的读取速度不如缓存,可以预见硬盘也会崩溃。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储处理方法和装置。依据本专利技术的一个方面,提供了一种数据存储处理方法,包括:将数据分别存储到所述数据库、一级缓存和二级缓存中;当接收到数据查询请求时,先到一级缓存中进行查询;如果一级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从一级缓存无法获得查询结果则到二级缓存中进行查询;如果二级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从二级缓存无法获得查询结果,则到数据库中进行查询;如果数据库中存在所请求的数据则向请求方返回查询到的数据,如果数据库中不存在所请求的数据则向请求方返回查询失败的结果。可选地,所述将数据分别存储到所述数据库、一级缓存和二级缓存中包括:对于一条数据,先将该条数据写入数据库中,再将该条数据写入一级缓存和二级缓存中;当一级缓存和二级缓存的任一个写入失败时,将该条数据从一级缓存和二级缓存中删除。可选地,所述一级缓存由N个缓存节点组成,所述二级缓存由N个缓存节点组成;一级缓存的N个缓存节点与二级缓存的N个缓存节点一一对应地存储同样的数据;N为自然数。可选地,所述一级缓存由M组缓存组成,每组缓存由N个缓存节点组成,所述二级缓存由N个缓存节点组成;所述一级缓存中的每组缓存中的N个缓存节点均与二级缓存的N个缓存节点一一对应地存储同样的数据。可选地,所述将数据分别存储到所述数据库、一级缓存和二级缓存中包括:将该数据存储到数据库中;将该数据存储到一级缓存的每组缓存中,以及将该数据存储到二级缓存中。可选地,所述到一级缓存中进行查询包括:通过一致性哈希算法将查询请求定向到一级缓存的一组缓存,到该组缓存中进行查询;或者,根据一级缓存中的各组缓存的负载能力和/或可用状态,将查询请求定向到一级缓存的一组缓存,到该组缓存中进行查询。可选地,该方法进一步包括:一级缓存和二级缓存存满后,当有新的数据需要存储时,从一级缓存和二级缓存中删除访问量低于预设值的数据,并将所述的新的数据写入一级缓存和二级缓存中。可选地,该方法进一步包括:当对数据库中的数据进行修改时,对一级缓存和二级缓存中的相同数据也做同样的修改。依据本专利技术的另一方面,提供了一种数据存储处理装置,包括:数据库单元、一级缓存单元、二级缓存单元、写处理单元和读处理单元;所述写处理单元,适于将数据分别存储到数据库单元、一级缓存单元和二级缓存单元中;所述读处理单元,适于在接收到数据查询请求时,先到一级缓存单元中进行查询;如果一级缓存单元中存在所请求的数据则向请求方返回查询到的数据,如果从一级缓存单元无法获得查询结果则到二级缓存单元中进行查询;如果二级缓存单元中存在所请求的数据则向请求方返回查询到的数据,如果从二级缓存单元无法获得查询结果,则到数据库单元中进行查询;如果数据库单元中存在所请求的数据则向请求方返回查询到的数据,如果数据库单元中不存在所请求的数据则向请求方返回查询失败的结果。可选地,所述写处理单元,适于对于一条数据,先将该条数据写入数据库单元中,再将该条数据写入一级缓存单元和二级缓存单元中;当一级缓存单元和二级缓存单元的任一个写入失败时,将该条数据从一级缓存单元和二级缓存单元中删除。可选地,所述一级缓存单元由N个缓存节点组成,所述二级缓存单元由N个缓存节点组成;所述一级缓存单元的N个缓存节点与所述二级缓存单元的N个缓存节点一一对应地存储同样的数据;N为自然数。可选地,所述一级缓存单元由M组缓存组成,每组缓存由N个缓存节点组成,所述二级缓存单元由N个缓存节点组成;所述一级缓存单元中的每组缓存中的N个缓存节点均与二级缓存单元的N个缓存节点一一对应地存储同样的数据。可选地,所述写处理单元,适于将数据存储到数据库单元中,将数据存储到一级缓存单元的每组缓存中,以及将数据存储到二级缓存单元中。可选地,所述读处理单元,适于在到一级缓存单元中进行查询时,通过一致性哈希算法将查询请求定向到一级缓存单元的一组缓存,到该组缓存中进行查询;或者,适于根据一级缓存单元中的各组缓存的负载能力和/或可用状态,将查询请求定向到一级缓存单元的一组缓存,到该组缓存中进行查询。可选地,所述写处理单元,适于在一级缓存单元和二级缓存单元存满后,当有新的数据需要存储时,从一级缓存单元和二级缓存单元中删除访问量低于预设值的数据,并将所述的新的数据写入一级缓存单元和二级缓存单元中。可选地,所述写处理单元,进一步适于当对数据库单元中的数据进行修改时,对一级缓存单元和二级缓存单元中的相同数据也做同样的修改。由上述可知,本专利技术提供的技术方案通过设置数据的存储方式,将数据分别存储到数据库、一级缓存和二级缓存中,当接收到数据查询请求时,首先到一级缓存中进行查询,如果一级缓存中存在所请求的数据,则向请求方返回查询的数据;如果从一级缓存中无法获得查询结果,则说明一级缓存可能崩溃或处于宕机等不可用状态,这需要再到二级缓存中进行查询,如果二级缓存中存在所请求的数据则向请求方返回查询到的数据,说明此时一级缓存可能崩溃或处于宕机等不可用状态;如果无法从二级缓存中同样无法获得查询结果,则说明二级缓存可能也崩溃或处于宕机等不可用状态,不过此种情况极少出现,此时需要到数据库中进行查询。如果数据库中存在所请求的数据则向请求方返回查询到的数据,如果数据库中不存在所请求的数据则向请求方返回查询失败的结果。这样利用一级缓存缓解了数据库的大部分数据查询压力,即使当一级缓存来不及处理过多的数据查询请求时,也可以利用二级缓存对从一级缓存中无法获得查询结果的数据查询请求进行处理,这样基本可以实现对所有数据查询请求的处理,只有在一级缓存和二级缓存中都未获得查询结果的数据查询请求才会到数据库中进行查询,这样的数据查询请求是极为少量,在数据库的处理能力内的,从而极大地减轻了数据库的访问压力,也能更好地应需要在较短时间内处理大量的数据查询请求的情况,具有减少器材损耗,降低人员维护成本的有益效果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得本文档来自技高网...

【技术保护点】
一种数据存储处理方法,其中,该方法包括:将数据分别存储到所述数据库、一级缓存和二级缓存中;当接收到数据查询请求时,先到一级缓存中进行查询;如果一级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从一级缓存无法获得查询结果则到二级缓存中进行查询;如果二级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从二级缓存无法获得查询结果,则到数据库中进行查询;如果数据库中存在所请求的数据则向请求方返回查询到的数据,如果数据库中不存在所请求的数据则向请求方返回查询失败的结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭军
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1