实现业务数据缓存的方法及装置制造方法

文档序号:7794375阅读:100来源:国知局
实现业务数据缓存的方法及装置制造方法
【专利摘要】本发明适用于通信领域,提供了一种实现业务数据缓存的方法及装置,所述方法包括:客户端从服务器下载数据索引列表;所述数据索引列表包括业务数据的ID和最后更新时间;查找缓存中所述ID对应的业务数据;当缓存内不存在所述ID对应的业务数据,或者缓存内所述ID对应的业务数据的更新时间与所述最后更新时间不一致时,从所述服务器下载所述业务数据。本发明提出的所述方法及装置可以保证为软件客户端上层应用提供最新的、准确的数据信息,提高缓存的效率,同时最大限度的利用本地缓存的数据,达到提高客户端响应速度、节省网络带宽的目的。
【专利说明】实现业务数据缓存的方法及装置
【技术领域】
[0001]本发明属于通信领域,尤其涉及一种实现业务数据缓存的方法及装置。
【背景技术】
[0002]在客户端-服务器模式的软件设计和研发过程中,需要经常将一些数据缓存在客户端,以便在下一次使用这些数据的时候,直接从缓存中加载,以达到提高响应速度、节省网络流量等目的。大多数客户端-服务器模式的软件系统中都会涉及到在客户端缓存数据问题,最常见的如网页浏览器缓存的网页数据。以网页浏览器缓存模式为例,一般以请求网页的URL为关键字,将获得到网页存放在缓存文件夹中,下一次打开相同的URL时,浏览器先查找缓存,有的话加载缓存中的页面,如果没有则加载服务器上的页面,同时进行缓存。
[0003]这种模式下,一个URL对应了一个静态页面(或一组静态数据),只要URL不变,获取到的数据总是相同,实现简单,效率较高。但是随着软件系统的复杂度越来越高,软件系统需要处理和展示动态数据,即一个相同的URL (或一组相同的查询条件),在不同的时间访问时,对应了不同的查询结果。目前,由于不清楚数据是否更新,都是每次都获取新的数据,造成效率低下。

【发明内容】

[0004]本发明实施例的目的在于提供一种实现业务数据缓存的方法及装置,旨在解决现有的数据缓存可能重复获取业务数据导致效率低下的问题。
[0005]本发明实施例是这样实现的,一种实现业务数据缓存的方法,所述方法包括:
[0006]客户端从服务器下载数据索引列表;所述数据索引列表包括业务数据的ID和最后更新时间;
[0007]查找缓存中所述ID对应的业务数据;
[0008]当缓存内不存在所述ID对应的业务数据,或者缓存内所述ID对应的业务数据的更新时间与所述最后更新时间不一致时,从所述服务器下载所述业务数据。
[0009]进一步地,所述方法还包括:
[0010]当缓存内存在所述ID对应的业务数据,且缓存内存在所述ID对应的业务数据的更新时间与所述最后更新时间一致时,从缓存内提取所述业务数据。
[0011]进一步地,在执行所述从服务器下载业务数据之后,还包括:
[0012]将缓存内所述ID对应的业务数据的更新时间更新为所述最后更新时间。
[0013]进一步地,在执行所述从服务器下载业务数据之后,还包括:
[0014]将所述业务数据组装并上传至上层应用。
[0015]进一步地,所述缓存为本地缓存或网络侧缓存。
[0016]本发明还提出一种实现业务数据缓存的装置,所述装置包括:
[0017]索引模块,用于从服务器下载数据索引列表;所述数据索引列表包括业务数据的ID和最后更新时间;[0018]查找模块,用于查找缓存中所述ID对应的业务数据;
[0019]缓存模块,用于当缓存内不存在所述ID对应的业务数据,或者缓存内所述ID对应的业务数据的更新时间与所述最后更新时间不一致时,从所述服务器下载所述业务数据。
[0020]进一步地,所述装置还包括:
[0021 ] 提取模块,用于当缓存内存在所述ID对应的业务数据,且缓存内存在所述ID对应的业务数据的更新时间与所述最后更新时间一致时,从缓存内提取所述业务数据。
[0022]进一步地,所述装置还包括:
[0023]更新模块,用于将缓存内所述ID对应的业务数据的更新时间更新为所述最后更新时间。
[0024]进一步地,所述装置还包括:
[0025]组装模块,用于将所述业务数据组装并上传至上层应用。
[0026]进一步地,所述缓存为本地缓存或网络侧缓存。
[0027]本发明所述方法及装置在具体的实现数据缓存时首先提取索引数据,根据索引数据对每一条业务单元的数据进行判断,判断所述业务数据的更新时间与最后更新时间是否一致,如果不一致则从所述服务器下载所述最新业务数据,如果所述业务数据的更新时间与最后更新时间一致,则直接从缓存下载业务数据,从而保证了客户端获取到的数据全部都是最新的,同时又能最大限度的节省网络传输的数据量,最大限度的利用本地缓存的数据,达到提高客户端响应速度、节省网络带宽的目的。在网络带宽较低、图片或其他多媒体数据较多的情况下,有着良好的实用价值。尤其适用于当前移动互联网应用越来越普及的情况。
【专利附图】

【附图说明】
[0028]图1是本发明实施例一提供的实现业务数据缓存的方法的流程图;
[0029]图2是本发明实施例二提供的实现业务数据缓存的方法的流程图;
[0030]图3是本发明实施例三提供的实现业务数据缓存的装置的结构图。
【具体实施方式】
[0031]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0032]实施例一
[0033]本发明实施例一提出一种实现业务数据缓存的方法。如图1所示,本发明实施例一的方法包括步骤:
[0034]S1、客户端从服务器下载业务数据的数据索引列表;所述数据索引列表包括业务数据的标识和最后更新时间。
[0035]本发明实施例一抽象出最小业务数据单元,所述最小业务数据单元是根据业务情况抽象出的,不同的业务情况都可能抽象出不同的业务数据,具体操作时保证其具有原子性即可。本实施例中,所述最小业务数据单元需要包含唯一对应该最小业务数据单元的标识ID、最后更新时间及其他的业务数据。[0036]一般来说,业务数据存放在关系型数据库中,最小业务数据单元可以表现为数据库中单张表中的一条记录,也可以是多张表中关联查询处理所得。
[0037]对最小业务数据单元的操作规则如下:
[0038]I)添加一个最小业务数据单元时,需要一次性添加该最小业务数据单元中的所有子项,同时生成唯一的ID,最后更新时间为添加业务数据的时间。
[0039]2)修改最小业务数据单元时(包括修改其中的子项),需要同时更新该最小业务数据单元的最后更新时间为操作时间。
[0040]3)通过ID,可唯一获取到最小业务数据单元的所有子项。
[0041]4)通过ID,可删除该最小业务数据单元,包括所有的子项。
[0042]本发明实施例一的服务器端提供两类接口:
[0043]I)查询最小业务数据单元索引接口:返回满足条件的最小业务数据单元索引列表,列表的每一条记录包含ID、最后更新时间两个字段。
[0044]2)查询业务数据单元信息接口:以ID为关键字,查询最小业务数据单元的具体数据。
[0045]客户端向服务器提交查询最小业务数据单元索引请求,服务端根据提交的参数,查询索引数据列表并返回给客户端。列表中的每一条数据包括一个最小业务数据单元的ID和最后更新时间。
[0046]S2、查找缓存中标识对应的业务数据,该缓存可以是本地的,也可以是网络侧的。
[0047]该步骤中,查找缓存的方式与缓存模式有关,缓存模式包括文件缓存和数据库缓存两种。如果是文件缓存,则以最小业务数据单元的ID为文件名存储,查找时遍历检索文件;如果是数据缓存,则将最小业务数据单元的ID设计为主键,查找时采用SQL语句检索。
[0048]S3、当缓存内不存在标识对应的业务数据,或者缓存内标识对应的业务数据的更新时间与最后更新时间不一致时,从服务器下载所述最后更新时间所对应的业务数据。
[0049]具体地,根据SI中获取到的索引数据,以“ID”和“最后更新时间”为依据,逐条提取最新业务数据,每个ID对应一个最小业务数据,而一般上层应用每次需要返回一组这样的数据,因此需要对数据进行组装。组装是按照上层应用要求的格式,循环将多个单条数据组合成一条复合数据的过程,可以是简单的拼接,也可以将最小业务数据解析后,按照上层应用的格式要求,重新组合;组装后的数据包含了本次业务所需要的所有数据,数据格式包括但不限于jsoruxml等。完成组装后,返回给上层应用。在提取最新业务数据时,分为两种情况:
[0050]若缓存中存在以ID为关键字的最新业务数据,则直接从缓存中提取;
[0051]若缓存中不存在以ID为关键字的最新业务数据,则以该ID为依据,到服务器端提取最新业务数据,同时将提取到的业务数据进行缓存。
[0052]一般地,判断缓存中存在以ID为关键字的最新业务数据条件为:在缓存中,能够找到该ID为关键字对应的业务数据,并且缓存的业务数据中的“最后更新时间”和S2提取业务数据条件中的“最后更新时间” 一致。
[0053]判断缓存中不存在以ID为关键字的最新业务数据条件为:在缓存中,若不能找到该ID为关键字对应的业务数据,或找到该ID为关键字对应的业务数据,但缓存的业务数据中的“最后更新时间”和S2提取数据条件中的“最后更新时间”不一致。[0054]本发明实施例一中,在具体的实现数据缓存时首先提取索引数据,根据索引数据对每一条业务单元的数据进行判断,判断所述业务数据的更新时间与最后更新时间是否一致,如果不一致则从所述服务器下载所述最新业务数据,如果所述业务数据的更新时间与最后更新时间一致,则直接从缓存下载业务数据,从而保证了客户端获取到的数据全部都是最新的,同时又能最大限度的节省网络传输的数据量,最大限度的利用本地缓存的数据,达到提高客户端响应速度、节省网络带宽的目的。在网络带宽较低、图片或其他多媒体数据较多的情况下,有着良好的实用价值。尤其适用于当前移动互联网应用越来越普及的情况。
[0055]实施例二:
[0056]下面以视频运营系统中,手机视频客户端上显示视频点列表为例,进行详细介绍。
[0057]业务场景:在视频运营中,手机用户可以查询所有的视频点列表,后台管理员可以新增、删除视频点,或者修改视频点的信息,视频点信息随时更新。为提高查询效率,每次查询只返回N (N可设置)条视频点信息,通过下一页的方式,获取更多的视频点信息。视频点信息包括名称、位置、图片、连接视频设备的IP、端口、用户名、密码等,因此,可在数据库中建立一张Video的数据索引表,如下所示:
[0058]
【权利要求】
1.一种实现业务数据缓存的方法,其特征在于,所述方法包括: 客户端从服务器下载数据索引列表;所述数据索引列表包括业务数据的ID和最后更新时间; 查找缓存中所述ID对应的业务数据; 当缓存内不存在所述ID对应的业务数据,或者缓存内所述ID对应的业务数据的更新时间与所述最后更新时间不一致时,从所述服务器下载所述业务数据。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 当缓存内存在所述ID对应的业务数据,且缓存内存在所述ID对应的业务数据的更新时间与所述最后更新时间一致时,从缓存内提取所述业务数据。
3.如权利要求1所述的方法,其特征在于,在执行所述从服务器下载业务数据之后,还包括: 将缓存内所述ID对应的业务数据的更新时间更新为所述最后更新时间。
4.如权利要求1至3中任一项所述的方法,其特征在于,在执行所述从服务器下载业务数据之后,还包括: 将所述业务数据组装并上传至上层应用。
5.如权利要求1至3中任一项所述的方法,其特征在于,所述缓存为本地缓存或网络侧缓存。
6.一种实现业务数据缓存的装置,其特征在于,所述装置包括: 索引模块,用于从服务器下载数据索引列表;所述数据索引列表包括业务数据的ID和最后更新时间; 查找模块,用于查找缓存中所述ID对应的业务数据; 缓存模块,用于当缓存内不存在所述ID对应的业务数据,或者缓存内所述ID对应的业务数据的更新时间与所述最后更新时间不一致时,从所述服务器下载所述业务数据。
7.如权利要求6所述的装置,其特征在于,所述装置还包括: 提取模块,用于当缓存内存在所述ID对应的业务数据,且缓存内存在所述ID对应的业务数据的更新时间与所述最后更新时间一致时,从缓存内提取所述业务数据。
8.如权利要求6所述的装置,其特征在于,所述装置还包括: 更新模块,用于将缓存内所述ID对应的业务数据的更新时间更新为所述最后更新时间。
9.如权利要求6至9中任一项所述的装置,其特征在于,所述装置还包括: 组装模块,用于将所述业务数据组装并上传至上层应用。
10.如权利要求6至9中任一项所述的装置,其特征在于,所述缓存为本地缓存或网络侧缓存。
【文档编号】H04L29/08GK103701929SQ201410001573
【公开日】2014年4月2日 申请日期:2014年1月2日 优先权日:2014年1月2日
【发明者】杨正平, 王军 申请人:中安消技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1