一种数据存储处理方法和装置的制造方法

文档序号:9432219阅读:243来源:国知局
一种数据存储处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及网络通信技术领域,特别涉及一种数据存储处理方法和装置。
【背景技术】
[0002]随着网络通信技术的发展和生活节奏的加快,人们获知信息的方式越来越多,同时获知信息的速度也越来越快,例如,许多事件甚至刚刚发生就在网络上广为流传,而提供这些热点新闻的服务方往往需要应付大量用户在短时间内极大量的数据查询。服务方通常将获取到的数据采用数据库进行存储,存储的数据写入硬盘中,而在用户希望查询数据时如果直接从硬盘读取数据,会造成硬盘访问压力过大。通常采取的做法是将数据库中的数据写入缓存中,当接收到数据查询请求时从缓存中查找数据。然而,对于在短时间内接收到大量数据查询请求的情况,即使在读取速度更快的缓存中查找数据有时也会造成缓存访问压力过大,而一旦读取速度更快的缓存崩溃,大量的数据查询请求就会直接读取数据库的硬盘,由于硬盘的读取速度不如缓存,可以预见硬盘也会崩溃。

【发明内容】

[0003]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据存储处理方法和装置。
[0004]依据本发明的一个方面,提供了一种数据存储处理方法,包括:
[0005]将数据分别存储到所述数据库、一级缓存和二级缓存中;当接收到数据查询请求时,先到一级缓存中进行查询;如果一级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从一级缓存无法获得查询结果则到二级缓存中进行查询;如果二级缓存中存在所请求的数据则向请求方返回查询到的数据,如果从二级缓存无法获得查询结果,则到数据库中进行查询;如果数据库中存在所请求的数据则向请求方返回查询到的数据,如果数据库中不存在所请求的数据则向请求方返回查询失败的结果。
[0006]可选地,所述将数据分别存储到所述数据库、一级缓存和二级缓存中包括:对于一条数据,先将该条数据写入数据库中,再将该条数据写入一级缓存和二级缓存中;当一级缓存和二级缓存的任一个写入失败时,将该条数据从一级缓存和二级缓存中删除。
[0007]可选地,所述一级缓存由N个缓存节点组成,所述二级缓存由N个缓存节点组成;一级缓存的N个缓存节点与二级缓存的N个缓存节点一一对应地存储同样的数据;N为自然数。
[0008]可选地,所述一级缓存由M组缓存组成,每组缓存由N个缓存节点组成,所述二级缓存由N个缓存节点组成;所述一级缓存中的每组缓存中的N个缓存节点均与二级缓存的N个缓存节点一一对应地存储同样的数据。
[0009]可选地,所述将数据分别存储到所述数据库、一级缓存和二级缓存中包括:将该数据存储到数据库中;将该数据存储到一级缓存的每组缓存中,以及将该数据存储到二级缓存中。
[0010]可选地,所述到一级缓存中进行查询包括:通过一致性哈希算法将查询请求定向到一级缓存的一组缓存,到该组缓存中进行查询;或者,根据一级缓存中的各组缓存的负载能力和/或可用状态,将查询请求定向到一级缓存的一组缓存,到该组缓存中进行查询。
[0011]可选地,该方法进一步包括:一级缓存和二级缓存存满后,当有新的数据需要存储时,从一级缓存和二级缓存中删除访问量低于预设值的数据,并将所述的新的数据写入一级缓存和二级缓存中。
[0012]可选地,该方法进一步包括:当对数据库中的数据进行修改时,对一级缓存和二级缓存中的相同数据也做同样的修改。
[0013]依据本发明的另一方面,提供了一种数据存储处理装置,包括:数据库单元、一级缓存单元、二级缓存单元、写处理单元和读处理单元;所述写处理单元,适于将数据分别存储到数据库单元、一级缓存单元和二级缓存单元中;所述读处理单元,适于在接收到数据查询请求时,先到一级缓存单元中进行查询;如果一级缓存单元中存在所请求的数据则向请求方返回查询到的数据,如果从一级缓存单元无法获得查询结果则到二级缓存单元中进行查询;如果二级缓存单元中存在所请求的数据则向请求方返回查询到的数据,如果从二级缓存单元无法获得查询结果,则到数据库单元中进行查询;如果数据库单元中存在所请求的数据则向请求方返回查询到的数据,如果数据库单元中不存在所请求的数据则向请求方返回查询失败的结果。
[0014]可选地,所述写处理单元,适于对于一条数据,先将该条数据写入数据库单元中,再将该条数据写入一级缓存单元和二级缓存单元中;当一级缓存单元和二级缓存单元的任一个写入失败时,将该条数据从一级缓存单元和二级缓存单元中删除。
[0015]可选地,所述一级缓存单元由N个缓存节点组成,所述二级缓存单元由N个缓存节点组成;所述一级缓存单元的N个缓存节点与所述二级缓存单元的N个缓存节点一一对应地存储同样的数据;N为自然数。
[0016]可选地,所述一级缓存单元由M组缓存组成,每组缓存由N个缓存节点组成,所述二级缓存单元由N个缓存节点组成;所述一级缓存单元中的每组缓存中的N个缓存节点均与二级缓存单元的N个缓存节点一一对应地存储同样的数据。
[0017]可选地,所述写处理单元,适于将数据存储到数据库单元中,将数据存储到一级缓存单元的每组缓存中,以及将数据存储到二级缓存单元中。
[0018]可选地,所述读处理单元,适于在到一级缓存单元中进行查询时,通过一致性哈希算法将查询请求定向到一级缓存单元的一组缓存,到该组缓存中进行查询;或者,适于根据一级缓存单元中的各组缓存的负载能力和/或可用状态,将查询请求定向到一级缓存单元的一组缓存,到该组缓存中进行查询。
[0019]可选地,所述写处理单元,适于在一级缓存单元和二级缓存单元存满后,当有新的数据需要存储时,从一级缓存单元和二级缓存单元中删除访问量低于预设值的数据,并将所述的新的数据写入一级缓存单元和二级缓存单元中。
[0020]可选地,所述写处理单元,进一步适于当对数据库单元中的数据进行修改时,对一级缓存单元和二级缓存单元中的相同数据也做同样的修改。
[0021]由上述可知,本发明提供的技术方案通过设置数据的存储方式,将数据分别存储到数据库、一级缓存和二级缓存中,当接收到数据查询请求时,首先到一级缓存中进行查询,如果一级缓存中存在所请求的数据,则向请求方返回查询的数据;如果从一级缓存中无法获得查询结果,则说明一级缓存可能崩溃或处于宕机等不可用状态,这需要再到二级缓存中进行查询,如果二级缓存中存在所请求的数据则向请求方返回查询到的数据,说明此时一级缓存可能崩溃或处于宕机等不可用状态;如果无法从二级缓存中同样无法获得查询结果,则说明二级缓存可能也崩溃或处于宕机等不可用状态,不过此种情况极少出现,此时需要到数据库中进行查询。如果数据库中存在所请求的数据则向请求方返回查询到的数据,如果数据库中不存在所请求的数据则向请求方返回查询失败的结果。这样利用一级缓存缓解了数据库的大部分数据查询压力,即使当一级缓存来不及处理过多的数据查询请求时,也可以利用二级缓存对从一级缓存中无法获得查询结果的数据查询请求进行处理,这样基本可以实现对所有数据查询请求的处理,只有在一级缓存和二级缓存中都未获得查询结果的数据查询请求才会到数据库中进行查询,这样的数据查询请求是极为少量,在数据库的处理能力内的,从而极大地减轻了数据库的访问压力,也能更好地应需要在较短时间内处理大量的数据查询请求的情况,具有减少器材损耗,降低人员维护成本的有益效果。
[0022]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0023]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0024]图1示出了根据本发明一个实施例的一种数据存储处理方法的流程图;
[0025]图2示出了根据本发明一个实施例的一种数据存储处理装置的结构示意图;
[0026]图3不出了一种缓存节点的对应关系不意图;
[0027]图4不出了又一种缓存节点的对应关系不意图。
【具体实施方式】
[0028]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0029]图1示出了根据本发明一个实施例的一种数据存储处理方法的流程图,如图1所示,该方法包括:
[0030]步骤S110,将数据分别存储到数据库、一级缓存和二级缓存中。
[0031]步骤S120,当接收到数据查询请求时,先到一级缓存中进行查询。
[0032]步骤S130,如果一级缓存中存在所请求的数据则向请求方返回查询到的数据,
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1