本发明专利技术实施例公开了一种数据缓存的方法、缓存服务器及系统,其中方法包括如下步骤:根据数据库查询语句对数据库进行数据查询,得到查询结果;根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,所述数据对象模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型,所述数据对象实体中包括了根据查询结果得到的数据及数据间的关联关系;缓存所述数据对象实体。采用本发明专利技术,可以预先构造并缓存数据对象实体,提高了检索数据的效率。
【技术实现步骤摘要】
本专利技术涉及通信
,尤其涉及一种数据缓存的方法、缓存服务器及系统。
技术介绍
在程序设计中,数据库设计是一个比较重要的环节,数据库用于存储和检索数据, 为了满足业务需求和实现复杂的业务逻辑,在数据库中需要设计许多数据表,并且还需要 在数据表之间建立主键与外键的关联关系以保持数据的一致性和唯一性,这些关联关系将 数据库中各个数据表关联在一起。数据表间相互关联对于存储数据的速度没什么太大的影响,但是会严重影响检索 数据的速度,现有技术中解决检索数据速度较慢的问题,一般采取优化数据库的方式来进 行,比如“建立索引”、“使用存储过程”、“优化SQL (structured query language,结构化 查询语言)语句”等。随着时间的推移,数据库在使用的过程中将会存储海量数据,为了应对业务的需 要,需要在一二十个关联数据表中检索数据,当有大用户量访问时,数据库服务器硬盘灯将 会狂闪不止,无数进程需要IO(Input/Output,输入/输出)操作,并处于阻塞状态。在现有技术中,通常会使用缓存机制,缓存机制分为两种,一种是数据库缓存,一 种是缓存框架,这两种缓存机制都是将常用的不经常改变的数据预先缓存到内存中,当客 户端发起请求时,优先从缓存中提取,缓存中不存在需要的数据,才从数据库中查询,并将 查询到的数据缓存到内存中,以备下次请求使用。采用数据库缓存或缓存框架,在一般应用场景中确实可以解决问题,但是对于数 据库中存储着海量数据,用户在通过客户端每次进行检索时,需要执行多条查询语句,并需 要将这些查询语句返回的查询结果数据相互融合,最后将融合后的数据返回给客户端,在 此情况下,如果使用上述数据库缓存和框架缓存,每次响应客户端的请求,仍然会需要执行 查询、数据融合的步骤,耗费较长的时间,会影响用户的体验。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种数据缓存的方法、缓存服务器 及系统,可以有效地提闻检索数据的效率。为了解决上述技术问题,本专利技术实施例提供了一种数据缓存的方法,包括根据数据库查询语句对数据库进行数据查询,得到查询结果;根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,所述数 据对象模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型,所述数据对象实 体中包括了根据查询结果得到的数据及数据间的关联关系;缓存所述数据对象实体。其中,所述根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实 体,包括根据业务需求对所述查询结果进行业务逻辑运算;将业务逻辑运算的运算结果和/或查询结果的数据录入到预先定义的所述数据 对象模型中,将所述数据对象模型构造成所述数据对象实体。其中,还包括将执行所述根据数据库查询语句对数据库进行数据查询得到查询结果所消耗的 时间记录为第一消耗时间;将构造得到数据对象实体所消耗的时间记录为第二消耗时间;将所述第一消耗时间、所述第二消耗时间以及预设的缓冲时间之和作为间隔时 长,所述间隔时长用于表示从当前执行对数据库进行数据查询开始距离下次执行对数据库 进行数据查询的中间时间。其中,所述缓存所述数据对象实体的步骤之后,还包括当达到所述间隔时长时,重新执行所述根据数据库查询语句对数据库进行数据查 询,得到查询结果以及构造、缓存所述数据对象实体的操作,以更新所述数据对象实体。其中,还包括当接收到业务服务器的数据查询请求时,发送已缓存的数据对象实体中符合数据 查询请求参数的数据到所述业务服务器。相应地,本专利技术实施例还提供了一种缓存服务器,包括查询模块,用于根据数据库查询语句对数据库进行数据查询,得到查询结果;构造模块,用于根据所述查询结果和预先定义的数据对象模型,构造得到数据对 象实体,所述数据对象模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型, 所述数据对象实体中包括了根据查询结果得到的数据及数据间的关联关系;缓存模块,用于缓存所述数据对象实体。其中,所述构造模块包括逻辑运算单元,用于根据业务需求对所述查询结果进行业务逻辑运算;录入单元,用于将业务逻辑运算的运算结果和/或查询结果的数据录入到预先定 义的所述数据对象模型中,将所述数据对象模型构造成所述数据对象实体。其中,还包括第一记录模块,用于将执行所述根据数据库查询语句对数据库进行数据查询得到 查询结果所消耗的时间记录为第一消耗时间;第二记录模块,用于将构造得到数据对象实体所消耗的时间记录为第二消耗时 间;总时间计算模块,用于将所述第一消耗时间、所述第二消耗时间以及预设的缓冲 时间之和作为间隔时长,所述间隔时长用于表示从当前执行对数据库进行数据查询开始距 离下次执行对数据库进行数据查询的中间时间。其中,还包括更新模块,用于当达到所述间隔时长时,重新执行所述根据数据库查询语句对数 据库进行数据查询,得到查询结果以及构造、缓存所述数据对象实体的操作,以更新所述数 据对象实体。其中,还包括发送模块,用于当接收到业务服务器的数据查询请求时,发送已缓存的数据对象 实体中符合数据查询请求参数的数据到所述业务服务器。相应地,本专利技术实施例还提供了一种数据缓存的系统,包括缓存服务器、业务服 务器、数据库服务器;所述缓存服务器,用于根据数据库查询语句对数据库进行数据查询,得到查询结 果;根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,所述数据对象 模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型,所述数据对象实体中包 括了根据查询结果得到的数据及数据间的关联关系;缓存所述数据对象实体;所述业务服务器,用于接收用户请求,根据所述用户请求发送数据查询请求到所 述缓存服务器,并通过调用所述缓存服务器接口从已缓存的数据对象实体中检索符合数据 查询请求参数的数据,接收检索到的数据并将该数据返回给用户; 所述数据库服务器,用于存储数据,并让所述缓存服务器进行数据查询。其中,还包括用户终端,用于发送用户请求到所述业务服务器,以使所述业务服务器根据所述 用户请求发送数据查询请求到所述缓存服务器,以获取用户所需的业务数据。实施本专利技术实施例,具有如下有益效果本专利技术实施例通过缓存服务器预先缓存了根据数据查询结果和预置的数据对象 模型构造得到的数据对象实体,方便用户在发起查询请求时,可以直接从数据对象实体中 检索到符合条件的数据,提高了检索数据的效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种数据缓存的系统的结构示意图2是本专利技术实施例提供的一种缓存服务器的结构示意图3是本专利技术实施例提供的另一种缓存服务器的结构示意图4是图3中的构造模块的结构示意图5是本专利技术实施例提供的一种数据缓存的方法的流程示意图6是本专利技术实施例提供的另一种数据缓存的方法的流程示意图7是本专利技术实施例提供的确定间隔时长的方法的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而本文档来自技高网...
【技术保护点】
一种数据缓存的方法,其特征在于,包括:根据数据库查询语句对数据库进行数据查询,得到查询结果;根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,所述数据对象模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型,所述数据对象实体中包括了根据查询结果得到的数据及数据间的关联关系;缓存所述数据对象实体。
【技术特征摘要】
1.一种数据缓存的方法,其特征在于,包括 根据数据库查询语句对数据库进行数据查询,得到查询结果; 根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,所述数据对象模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型,所述数据对象实体中包括了根据查询结果得到的数据及数据间的关联关系; 缓存所述数据对象实体。2.如权利要求1所述的方法,其特征在于,所述根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,包括 根据业务需求对所述查询结果进行业务逻辑运算; 将业务逻辑运算的运算结果和/或查询结果的数据录入到预先定义的所述数据对象模型中,将所述数据对象模型构造成所述数据对象实体。3.如权利要求2所述的方法,其特征在于,还包括 将执行所述根据数据库查询语句对数据库进行数据查询得到查询结果所消耗的时间记录为第一消耗时间; 将构造得到数据对象实体所消耗的时间记录为第二消耗时间; 将所述第一消耗时间、所述第二消耗时间以及预设的缓冲时间之和作为间隔时长,所述间隔时长用于表示从当前执行对数据库进行数据查询开始距离下次执行对数据库进行数据查询的中间时间。4.如权利要求3所述的方法,其特征在于,所述缓存所述数据对象实体的步骤之后,还包括 当达到所述间隔时长时,重新执行所述根据数据库查询语句对数据库进行数据查询,得到查询结果以及构造、缓存所述数据对象实体的操作,以更新所述数据对象实体。5.如权利要求4所述的方法,其特征在于,还包括 当接收到业务服务器的数据查询请求时,发送已缓存的数据对象实体中符合数据查询请求参数的数据到所述业务服务器。6.一种缓存服务器,其特征在于,包括 查询模块,用于根据数据库查询语句对数据库进行数据查询,得到查询结果; 构造模块,用于根据所述查询结果和预先定义的数据对象模型,构造得到数据对象实体,所述数据对象模型是由数据库中的关联数据表转换成具有层级嵌套关系的模型,所述数据对象实体中包括了根据查询结果得到的数据及数据间的关联关系; 缓存模块,用于缓存所述数据对象实体。7.如权利要求6所述的缓存服务器,其特征在于,所述构造模块包括 逻辑运算单元,用于根据业务需求对所...
【专利技术属性】
技术研发人员:邵珠玉,
申请(专利权)人:深圳市同洲电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。