缓存数据处理方法和装置的制造方法

文档序号:10624715阅读:232来源:国知局
缓存数据处理方法和装置的制造方法
【专利摘要】本发明提供了一种缓存数据处理方法和装置,所述方法包括:与服务器建立网络连接;通过所述网络连接拉取所述服务器所缓存的数据;将拉取的数据直接缓存在本地内存储器中;从本地内存储器所缓存的数据中筛选出待转移数据;将所述待转移数据从本地内存储器转移到本地外存储器中缓存。本发明提供的缓存数据处理方法和装置,通过网络缓存、本地内存储器缓存和外存储器缓存的三级动态缓存策略,本地内存储器占用少,而且可以即时通过网络获取新的数据,并优先通过本地内存储器获取已缓存的数据,保证数据处理的效率。
【专利说明】
缓存数据处理方法和装置
技术领域
[0001] 本发明设及终端技术领域,特别是设及一种缓存数据处理方法和装置。
【背景技术】
[0002] 缓存是指临时的数据交换区,因为直接取原始数据的代价太大,终端把最常用的 数据从存储器里取出来临时放在缓存里,运样终端可W快速获取到缓存中的数据,提高数 据处理效率。
[0003] 目前终端一般采用磁盘缓存方式或者内存储器缓存方式来达到缓存数据的目的。 然而,磁盘缓存方式虽然可W持久保存数据,不容易丢失,但通过磁盘I/O(输入/输出)端 口读写的速度慢,影响了数据处理的效率。而内存储器缓存的方式虽然可W保证数据处理 的效率,但是终端的内存储器是非常有限的资源,无法用来缓存所有数据。因此,目前的数 据缓存方式不能兼顾效率和内存储器占用率。

【发明内容】

[0004] 基于此,有必要针对目前的数据缓存方式不能兼顾效率和内存储器占用率的问 题,提供一种缓存数据处理方法和装置。 阳〇化]一种缓存数据处理方法,所述方法包括:
[0006] 与服务器建立网络连接;
[0007] 通过所述网络连接拉取所述服务器所缓存的数据;
[0008] 将拉取的数据直接缓存在本地内存储器中;
[0009] 从本地内存储器所缓存的数据中筛选出待转移数据;
[0010] 将所述待转移数据从本地内存储器转移到本地外存储器中缓存。
[0011] 一种缓存数据处理装置,所述装置包括:
[0012] 网络缓存模块,用于与服务器建立网络连接;还用于通过所述网络连接拉取所述 服务器所缓存的数据;
[0013] 本地内存储器缓存模块,用于将拉取的数据直接缓存在本地内存储器中;还用于 从本地内存储器所缓存的数据中筛选出待转移数据;
[0014] 本地外存储器缓存模块,用于将所述待转移数据从本地内存储器转移到本地外存 储器中缓存。
[0015] 上述缓存数据处理方法和装置,获取到服务器缓存的数据后缓存到本地内存储器 中,再将其中一部分缓存到外存储器。运样通过网络缓存、本地内存储器缓存和外存储器缓 存的Ξ级动态缓存策略,本地内存储器占用少,而且可W即时通过网络获取新的数据,并优 先通过本地内存储器获取已缓存的数据,保证数据处理的效率。
【附图说明】
[0016] 图1为一个实施例中用于实现缓存数据处理方法的终端的内部结构图;
[0017] 图2为一个实施例中缓存数据处理方法的流程示意图;
[0018] 图3为一个实施例中调用缓存数据的步骤的流程示意图;
[0019] 图4为一个实施例中动态计算数据量阔值的步骤的流程示意图;
[0020] 图5为一个实施例中从内存储器向外存储器转移缓存的数据的示意图;
[0021] 图6为一个实施例中缓存数据处理装置的结构框图;
[0022] 图7为另一个实施例中缓存数据处理装置的结构框图;
[0023] 图8为再一个实施例中缓存数据处理装置的结构框图。
【具体实施方式】
[0024] 为了使本发明的目的、技术方案及优点更加清楚明白,W下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用W解释本发明,并 不用于限定本发明。
[00对如图1所示,在一个实施例中,提供了一种终端100,该终端100包括通过系统总线 连接的处理器、内存储器、外存储器和网络接口。其中,该终端100的外存储器存储有操作 系统和一种缓存数据处理装置,该缓存数据处理装置用于实现一种缓存数据处理方法。该 终端100的处理器被配置为执行一种缓存数据处理方法。该终端100的网络接口用于与服 务器连接通信。该终端100可W是台式计算机,优选为移动终端。移动终端比如可W是智 能手机、平板电脑或者PDA(个人数字助理)等。
[00%] 如图2所示,在一个实施例中,提供了一种缓存数据处理方法,本实施例W该方法 应用于上述图1中的终端100来举例说明,该终端100运行有Amlroid (安卓)操作系统, 其上运行有一种应用程序,通过该应用程序来实现上述缓存数据处理方法。
[0027] 步骤202,与服务器建立网络连接。
[0028] 具体地,终端内置有服务器的公网地址,用户也可W对终端内置的服务器的公网 地址进行配置。运样终端可W根据服务器的公网地址,通过有线或者无线方式接入互联网, 并经由互联网连接到服务器,从而建立起终端与服务器之间的网络连接。
[0029] 终端与服务器之间通信可W采用预先定义的终端与服务器之间的通信协议。终端 与服务器之间的网络连接优选为长连接。终端可W定时向服务器发送数据包来保持长连 接。运里的定时可W是每隔预设时间间隔或者每到预设时间点。
[0030] 步骤204,通过网络连接拉取服务器所缓存的数据。
[00川具体地,服务器缓存了数据,服务器缓存的数据优选是具有实时性的数据,比如流 媒体数据或者游戏数据。流媒体可W是音频流媒体、视频流媒体或者音视频结合的流媒体。
[0032] 终端通过网络连接拉取服务器上缓存的数据,具体由终端发起数据获取请求,并 通过网络连接发送到服务器,接收服务器根据该数据获取请求而返回的缓存在服务器上的 数据。其中数据获取请求携带有数据的索引标识,用于指定需要请求获取的数据。
[0033] 步骤206,将拉取的数据直接缓存在本地内存储器中。
[0034] 运里的本地内存储器是指随机存储器(Random Access Memcxry,RAM),其作用是暂 时存放处理器的运算数据,并存放外存储器交换的数据。终端在运行中,处理器会把需要运 算的数据调到本地内存储器中进行运算,当运算完成后处理器再将运算结果传送出来。
[0035] 直接缓存在本地内存储器中,是指不经过外存储器而直接缓存在本地内存储器 中。外存储器是指终端中除了处理器缓存和本地内存储器之外的存储器,外存储器在断电 后仍然能够保存数据。外存储器可W是磁存储器、光存储器或者可擦写闪存。终端将拉取 的数据存放在本地内存储器中为应用程序分配的内存地址,用内存链表来存储数据。
[0036] 步骤208,从本地内存储器所缓存的数据中筛选出待转移数据。
[0037] 具体地,终端根据预定义的筛选方式,可定时将本地内存储器所缓存的数据中不 常用到的数据筛选出来,作为待转移数据。待转移数据是指需要从本地内存储器转移出的 数据。
[0038] 步骤210,将待转移数据从本地内存储器转移到本地外存储器中缓存。
[0039] 具体地,待转移数据转移到本地外存储器中缓存,本地内存储器中将不再缓存该 待转移数据。该待转移数据再次被调用时,需要从本地外存储器中调取,虽然会影响到调 用该待转移数据的效率,但是可W保证从服务器拉取到的新的数据可W缓存在本地内存 储器中。具体本地外存储器中可W用数据库来缓存获取到的待转移数据,比如可W采用 S化ite (-款轻型数据库)进行缓存。
[0040] 上述缓存数据处理方法,获取到服务器缓存的数据后缓存到本地内存储器中,再 将其中一部分缓存到外存储器。运样通过网络缓存、本地内存储器缓存和外存储器缓存的 Ξ级动态缓存策略,本地内存储器占用少,而且可W即时通过网络获取新的数据,并优先通 过本地内存储器获取已缓存的数据,保证数据处理的效率。
[0041] 如图3所示,在一个实施例中,该缓存数据处理方法还包括调用缓存数据的步骤, 具体包括如下步骤:
[0042] 步骤302,接收数据调用请求。
[0043] 具体地,数据调用请求是指请求调用相应的数据的指令,数据调用请求指定了需 要调用的数据,比如可W携带有索引标识,通过该索引标识来定位内存链表中的相应数据。 相应地,本地内存储器中通过内存链表来保存缓存的数据。
[0044] 步骤304,判断本地内存储器所缓存的数据中是否存在数据调用请求所指定的数 据;若是,则执行步骤306 ;若否,则执行步骤308。
[0045] 具体地,终端可W遍历本地内存储器中分配给应用程序的索引区,判断是否存在 数据调用请求所携带的索引标识所对应的数据,若是则执行步骤306,否则执行步骤308。
[0046] 步骤306,从本地内存储器缓存的数据中获取相应的数据。
[0047] 具体地,若判定本地内存储器所缓存的数据中存在数据调用请求所指定的数据, 比如经过遍历分配给应用程序的索引区,查找到与数据调用请求所携带的索引标识匹配的 数据,则可W直接从本地内存储器中调用数据调用请求所指定的数据。
[0048] 步骤308,判断本地外存储器所缓存的数据中是否存在数据调用请求所指定的数 据;若是,则执行步骤310 ;若否,则执行步骤312。
[0049] 具体地,若判定本地内存储器所缓存的数据中不存在数据调用请求所指定的数 据,比如经过遍历分配给应用程序的索引区,未查找到与数据调用请求所携带的索引标识 匹配的数据,则可W继续执行步骤308进行进一步判断。
[0050] 终端可遍历本地外存储器中用来缓存数据的数据库,判断数据库中是否存在数 据调用请求所携带的索引标识所对应的缓存数据,若是则执行步骤310,若否则执行步骤 312。
[0051] 步骤310,从本地外存储器缓存的数据中获取相应的数据。
[0052] 具体地,终端在判定本地外存储器缓存的数据中存在数据调用请求所指定的数据 时,则从本地外存储器中调用该数据调用请求所指定的数据。
[0053] 步骤312,从服务器拉取数据调用请求所指定的数据。
[0054] 具体地,终端在判定本地外存储器缓存的数据中不存在数据调用请求所指定的数 据时,说明调用的是新的数据,需要请求服务器,从服务器拉取数据调用请求所指定的数 据。
[0055] 本实施例中,通过Ξ级缓存方式,终端在调用数据时,终端可W优先从效率最高的 本地内存储器缓存的数据中调取数据。如果本地内存储器中没有相应数据,则再从外存储 器缓存的数据中调取数据,如果外存储器中也没有,则说明之前没有缓存该数据,需要再从 服务器获取服务器所缓存的数据,运样可W保证数据调用的效率。
[0056] 在一个实施例中,终端从本地内存储器、本地外存储器和服务器缓存的数据中获 取相应的数据时,发起获取数据的请求与接收相应的数据是异步进行的。运样可W并行处 理获取缓存数据的操作,而不必等到一个获取缓存数据的操作结束后才能获取另一个缓存 数据。 阳057] 在一个实施例中,步骤208包括:定时将本地内存储器所缓存的数据中在至当前 时间的指定时间长度的时间范围内被调用次数最少的数据作为待转移数据。
[0058] 具体地,定时是指每隔预设时间间隔或者每到预设时间点,比如每隔指定时间长 度。至当前时间的指定时间长度的时间范围,是指W当前时间为终点、长度为指定时间长度 的时间范围。比如当前时间为X,指定时间长度为1秒,则至当前时间的指定时间长度的时 间范围为技-l,x]。
[0059] 终端可W在本地内存储器中缓存的数据的预设存储区域中记录相应的数据的被 调用次数,并且定时在步骤208之后清零。运样在每次执行步骤208时,可W比较本地内存 储器中缓存的各个数据的预设存储区域中的被调用次数,从而将被调用次数最小的相应数 据作为待转移数据。运里缓存的数据的预设存储区域是指对应缓存的数据分配的一个存储 区域,用来存储该数据的相关信息,比如索引标识或被调用次数。
[0060] 或者,终端可W在本地内存储器中缓存的数据的预设存储区域中记录次数参数, 并且每当一个缓存的数据被调用时,将该数据的预设存储区域中的次数参数清零,而缓存 的其它数据的预设存储区域中记录的次数参数加1。
[0061] 运样在每次执行步骤208时,可W比较本地内存储器中缓存的各个数据的预设存 储区域中的次数参数,从而将次数参数最大的相应数据作为待转移数据。运里次数参数最 大时表示被调用次数最少。
[0062] 在一个实施例中,步骤208包括:定时将本地内存储器所缓存的数据中具有与当 前时间差距最大的最后被调用时间的数据作为待转移数据。
[0063] 具体地,最后被调用时间,是指缓存的数据最后一次被调用的时间。可W在缓存的 数据被调用时,在该数据的预设存储区域记录被调用时间。
[0064] 运样在每次执行步骤208时,可W获取本地内存储器中缓存的各个数据的预设存 储区域中记录的最后被调用时间,并与当前时间比较。若缓存的数据的最后被调用时间距 离当前时间最远,差距最大,说明相应的数据在近期被调用次数最少,将本地内存储器中缓 存的该数据作为待转移数据。 阳0化]在一个实施例中,步骤208包括:定时将本地内存储器所缓存的数据中在至当前 时间的指定时间长度的时间范围内未被调用的数据中的任意至少一项作为待转移数据。
[0066] 具体地,本地内存储器中缓存的数据的预设存储区域中可W设置表示是否被调用 的标志位,并初始化为表示未被调用的第一数值,若该数据被调用则将该标志位重置为表 示已被调用的第二数值,并在确定待转移数据之后初始化该标志位。
[0067] 运样在执行步骤208时,每隔指定时间长度的时间间隔,将当前本地内存储器缓 存的数据中预设存储区域的标志位为表示未被调用的第一数值的数据作为待转移数据,并 将缓存的数据的预设存储区域中的标志位初始化为第一数值。
[0068] 上述各个实施例中,将本地内存储器所缓存的数据中近期最少使用的数据从本地 内存储器中转移到外存储器中缓存,可W保证常用的数据保留在本地内存储器中缓存被高 效的调用,进而整体提高缓存数据的处理效率。
[0069] 在一个实施例中,步骤208还包括:定时将本地内存储器所缓存的数据中超过数 据量阔值的数据作为待转移数据。
[0070] 具体地,一个数据的数据量是指该数据占用存储空间的大小,定时是指每隔预设 时间间隔或者每到预设时间点。数据量阔值可W是预先设定的值,比如可W设置为2M~6M 之间的一个值,优选取4M,其中Μ是指兆字节。
[0071] 本实施例中,定时将本地内存储器所缓存的数据中占用存储空间较多的数据转移 到本地外存储器中缓存,运样本地内存储器可W用来缓存更多较小的常用数据,从而整体 上提高缓存数据的处理效率。
[0072] 如图4所示,在一个实施例中,在定时将本地内存储器所缓存的数据中超过数据 量阔值的数据作为待转移数据的步骤之前,还包括动态计算数据量阔值的步骤,具体包括 W下步骤:
[0073] 步骤402,获取本地内存储器当前的已使用量和当前运行的应用程序数量。
[0074] 具体地,本地内存储器当前的已使用量是指本地内存储当前被占用的容量,比如 若内存储器共为2G(G表示GB,01邑油八6,表示千兆字节),已被占用1. 5G,则已使用量为 1.5*1024M = 1536M。
[00巧]步骤404,计算已使用量和应用程序数量的比值。
[0076] 具体地,根据公式(1)
计算比值,其中Numi表示本地内存储器当前的 已使用量,而Numz表示本地内存储器当前运行的应用程序数量。
[0077] 步骤406,根据已使用量和应用程序数量的比值计算数据量阔值。
[0078] 具体地,可W将步骤404中计算出的比值α直接作为数据量阔值,或者,可W将步 骤404中计算出的比值α乘W-个小于1的正系数。具体来说,可W根据W下公式似0 =α X δ来计算数据量阔值β,其中δ为一个小于1的正系数。
[0079] 在一个实施例中,δ优选为0.75,运是由于本地内存储器中的内存变量采用散列 表来索引时,散列表的容积率达到75%时效率最高。其中散列表也叫哈希表,是根据关键码 值化ey value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到散列表 中一个位置来访问记录,W加快查找的速度。散列表的容积率是指散列表的已占用关键码 Key的存储空间和存储关键码Key的总存储空间的比值。
[0080] 本实施例中,根据本地内存储器的实际情况来动态计算数据量阔值,从而根据实 际情况决定将多大的缓存数据转移到外存储器缓存,进一步优化了缓存数据的处理效率。
[0081] 参照图5,在一个实施例中,将本地内存储器所缓存的数据中近期最少使用的数据 从本地内存储器中转移到外存储器中缓存,W及将本地内存储器所缓存的数据中超过数据 量阔值的数据作为待转移数据的步骤是可W同时存在的。
[0082] 如图6所示,在一个实施例中,提供了一种缓存数据处理装置600,具有实现上述 各个实施例的缓存数据处理方法的功能。该缓存数据处理装置600包括网络缓存模块601、 本地内存储器缓存模块602和本地外存储器缓存模块603。
[0083] 网络缓存模块601,用于与服务器建立网络连接;还用于通过网络连接拉取服务 器所缓存的数据。
[0084] 具体地,网络缓存模块601可W根据内置的服务器的公网地址,通过有线或者无 线方式接入互联网,并经由互联网连接到服务器,从而建立起终端与服务器之间的网络连 接。
[00化]网络缓存模块601可用于采用预先定义的终端与服务器之间的通信协议与服务 器进行通信网络连接优选为长连接。网络缓存模块601可用于定时向服务器发送数据包来 保持长连接。运里的定时可W是每隔预设时间间隔或者每到预设时间点。
[0086] 本地内存储器缓存模块602,用于将拉取的数据直接缓存在本地内存储器中;还 用于从本地内存储器所缓存的数据中筛选出待转移数据。
[0087] 具体地,服务器缓存了数据,服务器缓存的数据优选是具有实时性的数据,比如流 媒体数据或者游戏数据。流媒体可W是音频流媒体、视频流媒体或者音视频结合的流媒体。
[0088] 本地内存储器缓存模块602可用于通过网络连接拉取服务器上缓存的数据,具体 由终端发起数据获取请求,并通过网络连接发送到服务器,接收服务器根据该数据获取请 求而返回的缓存在服务器上的数据。其中数据获取请求携带有数据的索引标识,用于指定 需要请求获取的数据。
[0089] 运里的本地内存储器是指随机存储器,其作用是暂时存放处理器的运算数据,并 存放外存储器交换的数据。终端在运行中,处理器会把需要运算的数据调到本地内存储器 中进行运算,当运算完成后处理器再将运算结果传送出来。
[0090] 直接缓存在本地内存储器中,是指不经过外存储器而直接缓存在本地内存储器 中。外存储器是指终端中除了处理器缓存和本地内存储器之外的存储器,外存储器在断电 后仍然能够保存数据。外存储器可W是磁存储器、光存储器或者可擦写闪存。终端将拉取 的数据存放在本地内存储器中为应用程序分配的内存地址,用内存链表来存储数据。
[0091] 本地内存储器缓存模块602可用于根据预定义的筛选方式,将本地内存储器所缓 存的数据中不常用到的数据筛选出来,作为待转移数据。待转移数据是指需要从本地内存 储器转移出的数据。
[0092] 本地外存储器缓存模块603,用于将待转移数据从本地内存储器转移到本地外存 储器中缓存。
[0093] 具体地,待转移数据转移到本地外存储器中缓存,本地内存储器中将不再缓存该 待转移数据。该待转移数据再次被调用时,需要从本地外存储器中调取,虽然会影响到调 用该待转移数据的效率,但是可w保证从服务器拉取到的新的数据可w缓存在本地内存 储器中。具体本地外存储器中可W用数据库来缓存获取到的待转移数据,比如可W采用 S化ite (-款轻型数据库)进行缓存。
[0094] 上述缓存数据处理装置600,获取到服务器缓存的数据后缓存到本地内存储器中, 再将其中一部分缓存到外存储器。运样通过网络缓存、本地内存储器缓存和外存储器缓存 的Ξ级动态缓存策略,本地内存储器占用少,而且可W即时通过网络获取新的数据,并优先 通过本地内存储器获取已缓存的数据,保证数据处理的效率。
[0095] 如图7所示,在一个实施例中,该缓存数据处理装置600还包括数据调用请求接收 模块604、第一判断模块605、第二判断模块606和数据调用模块607。
[0096] 数据调用请求接收模块604,用于接收数据调用请求。具体地,数据调用请求是指 请求调用相应的数据的指令,数据调用请求指定了需要调用的数据,比如可W携带有索引 标识,通过该索引标识来定位内存链表中的相应数据。相应地,本地内存储器中通过内存链 表来保存缓存的数据。
[0097] 第一判断模块605,用于判断本地内存储器所缓存的数据中是否存在数据调用请 求所指定的数据。具体地,第一判断模块605可用于遍历本地内存储器中分配给应用程序 的索引区,判断是否存在数据调用请求所携带的索引标识所对应的数据
[0098] 数据调用模块607,用于在第一判断模块判定本地内存储器所缓存的数据中存在 数据调用请求所指定的数据时,从本地内存储器缓存的数据中获取相应的数据。具体地,若 判定本地内存储器所缓存的数据中存在数据调用请求所指定的数据,比如经过遍历分配给 应用程序的索引区,查找到与数据调用请求所携带的索引标识匹配的数据,则可W直接从 本地内存储器中调用数据调用请求所指定的数据。
[0099] 第二判断模块606,用于在第一判断模块判定本地内存储器所缓存的数据中不存 在数据调用请求所指定的数据时,判断本地外存储器所缓存的数据中是否存在数据调用请 求所指定的数据。具体地,若判定本地内存储器所缓存的数据中不存在数据调用请求所指 定的数据,比如经过遍历分配给应用程序的索引区,未查找到与数据调用请求所携带的索 引标识匹配的数据,则可W遍历本地外存储器中用来缓存数据的数据库,判断数据库中是 否存在数据调用请求所携带的索引标识所对应的缓存数据。
[0100] 数据调用模块607还用于在第二判断模块判定本地外存储器所缓存的数据中存 在数据调用请求所指定的数据时,从本地外存储器缓存的数据中获取相应的数据;还用于 在第二判断模块判定本地外存储器所缓存的数据中不存在数据调用请求所指定的数据时, 从服务器拉取数据调用请求所指定的数据。 阳101] 具体地,数据调用模块607用于在判定本地外存储器缓存的数据中存在数据调用 请求所指定的数据时,则从本地外存储器中调用该数据调用请求所指定的数据。数据调用 模块607还用于在判定本地外存储器缓存的数据中不存在数据调用请求所指定的数据时, 说明调用的是新的数据,需要请求服务器,从服务器拉取数据调用请求所指定的数据。
[0102] 本实施例中,通过Ξ级缓存方式,终端在调用数据时,终端可W优先从效率最高的 本地内存储器缓存的数据中调取数据。如果本地内存储器中没有相应数据,则再从外存储 器缓存的数据中调取数据,如果外存储器中也没有,则说明之前没有缓存该数据,需要再从 服务器获取服务器所缓存的数据,运样可W保证数据调用的效率。
[0103] 在一个实施例中,数据调用模块607用于在从本地内存储器、本地外存储器和服 务器缓存的数据中获取相应的数据时,发起获取数据的请求与接收相应的数据是异步进 行。运样可W并行处理获取缓存数据的操作,而不必等到一个获取缓存数据的操作结束后 才能获取另一个缓存数据。
[0104] 在一个实施例中,本地内存储器缓存模块602还用于定时将本地内存储器所缓存 的数据中在至当前时间的指定时间长度的时间范围内被调用次数最少的数据作为待转移 数据。
[0105] 具体地,定时是指每隔预设时间间隔或者每到预设时间点,比如每隔指定时间长 度。至当前时间的指定时间长度的时间范围,是指W当前时间为终点、长度为指定时间长度 的时间范围。本地内存储器缓存模块602可用于在本地内存储器中缓存的数据的预设存储 区域中记录相应的数据的被调用次数,并且定时在步骤208之后清零。运样可W通过比较 本地内存储器中缓存的各个数据的预设存储区域中的被调用次数,从而将被调用次数最小 的相应数据作为待转移数据。运里缓存的数据的预设存储区域是指对应缓存的数据分配的 一个存储区域,用来存储该数据的相关信息,比如索引标识或被调用次数。
[0106] 或者,本地内存储器缓存模块602可用于在本地内存储器中缓存的数据的预设存 储区域中记录次数参数,并且每当一个缓存的数据被调用时,将该数据的预设存储区域中 的次数参数清零,而缓存的其它数据的预设存储区域中记录的次数参数加1。运样可W通过 比较本地内存储器中缓存的各个数据的预设存储区域中的次数参数,从而将次数参数最大 的相应数据作为待转移数据。运里次数参数最大时表示被调用次数最少。
[0107] 在一个实施例中,本地内存储器缓存模块602还用于定时将本地内存储器所缓存 的数据中具有与当前时间差距最大的最后被调用时间的数据作为待转移数据。
[0108] 具体地,最后被调用时间,是指缓存的数据最后一次被调用的时间。可W在缓存的 数据被调用时,在该数据的预设存储区域记录被调用时间。
[0109] 运样本地内存储器缓存模块602可用于获取本地内存储器中缓存的各个数据的 预设存储区域中记录的最后被调用时间,并与当前时间比较。若缓存的数据的最后被调用 时间距离当前时间最远,差距最大,说明相应的数据在近期被调用次数最少,将本地内存储 器中缓存的该数据作为待转移数据。
[0110] 在一个实施例中,本地内存储器缓存模块602还用于定时将本地内存储器所缓存 的数据中在至当前时间的指定时间长度的时间范围内未被调用的数据中的任意至少一项 作为待转移数据。 阳111] 具体地,本地内存储器中缓存的数据的预设存储区域可W设置表示是否被调用的 标志位,并初始化为表示未被调用的第一数值,若该数据被调用则将该标志位重置为表示 已被调用的第二数值,并在确定待转移数据之后初始化该标志位。
[0112] 运样本地内存储器缓存模块602可用于每隔指定时间长度的时间间隔,将当前本 地内存储器缓存的数据中预设存储区域标志位为表示未被调用的第一数值的数据作为待 转移数据,并将缓存的数据的预设存储区域中的标志位初始化为第一数值。
[0113] 上述各个实施例中,将本地内存储器所缓存的数据中近期最少使用的数据从本地 内存储器中转移到外存储器中缓存,可W保证常用的数据保留在本地内存储器中缓存被高 效的调用,进而整体提高缓存数据的处理效率。
[0114] 在一个实施例中,本地内存储器缓存模块602还用于定时将本地内存储器所缓存 的数据中超过数据量阔值的数据作为待转移数据。具体地,一个数据的数据量是指该数据 占用存储空间的大小,定时是指每隔预设时间间隔或者每到预设时间点。数据量阔值可W 是预先设定的值,比如可W设置为2M~6M之间的一个值,优选取4M,其中Μ是指兆字节。
[0115] 本实施例中,定时将本地内存储器所缓存的数据中占用存储空间较多的数据转移 到本地外存储器中缓存,运样本地内存储器可W用来缓存更多较小的常用数据,从而整体 上提高缓存数据的处理效率。
[0116] 如图8所示,在一个实施例中,该缓存数据处理装置600还包括:获取模块608、比 值计算模块609和数据量阔值计算模块610。
[0117] 获取模块608,用于获取本地内存储器当前的已使用量和当前运行的应用程序 数量。具体地,本地内存储器当前的已使用量是指本地内存储当前被占用的容量,比如 若内存储器共为2G(G表示GB,01邑油八6,表示千兆字节),已被占用1. 5G,则已使用量为 1.5*1024M = 1536M。
[0118] 比值计算模块609,用于计算已使用量和应用程序数量的比值。具体地,比值计算 模块609可用于根据公式(1)
计算比值,其中Numi表示本地内存储器当前的已 使用量,而Nirniz表示本地内存储器当前运行的应用程序数量。
[0119] 数据量阔值计算模块610,用于根据已使用量和应用程序数量的比值计算数据量 阔值。具体地,数据量阔值计算模块610可用于将计算出的比值α直接作为数据量阔值, 或者,数据量阔值计算模块610可用于将计算出的比值α乘W-个小于1的正系数。具体 来说,可W根据W下公式(2) β = α X δ来计算数据量阔值β,其中δ为一个小于1的正 系数。
[0120] 在一个实施例中,δ优选为0.75,运是由于本地内存储器中的内存变量采用散列 表来索引时,散列表的容积率达到75%时效率最高。其中散列表也叫哈希表,是根据关键码 值化ey value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到散列表 中一个位置来访问记录,W加快查找的速度。散列表的容积率是指散列表的已占用关键码 Key的存储空间和存储关键码Key的总存储空间的比值。 阳121] 本实施例中,根据本地内存储器的实际情况来动态计算数据量阔值,从而根据实 际情况决定将多大的缓存数据转移到外存储器缓存,进一步优化了缓存数据的处理效率。
[0122] 本领域普通技术人员可W理解实现上述实施例方法中的全部或部分流程,是可W 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体巧eacH3nly Memo巧,ROM)或随机存储记忆体(Random Access Memoir, RAM)等。
[0123] W上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可W做出若干变形和改进,运些都属于本发明的保 护范围。因此,本发明专利的保护范围应W所附权利要求为准。
【主权项】
1. 一种缓存数据处理方法,所述方法包括: 与服务器建立网络连接; 通过所述网络连接拉取所述服务器所缓存的数据; 将拉取的数据直接缓存在本地内存储器中; 从本地内存储器所缓存的数据中筛选出待转移数据; 将所述待转移数据从本地内存储器转移到本地外存储器中缓存。2. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收数据调用请求; 判断本地内存储器所缓存的数据中是否存在所述数据调用请求所指定的数据,若是, 则从本地内存储器缓存的数据中获取相应的数据;若否,则 判断本地外存储器所缓存的数据中是否存在所述数据调用请求所指定的数据,若是, 则从本地外存储器缓存的数据中获取相应的数据;若否,则 从所述服务器拉取所述数据调用请求所指定的数据。3. 根据权利要求1所述的方法,其特征在于,所述从本地内存储器所缓存的数据中筛 选出待转移数据,包括: 定时将本地内存储器所缓存的数据中在至当前时间的指定时间长度的时间范围内被 调用次数最少的数据作为待转移数据;或者, 定时将本地内存储器所缓存的数据中具有与当前时间差距最大的最后被调用时间的 数据作为待转移数据;或者, 定时将本地内存储器所缓存的数据中在至当前时间的指定时间长度的时间范围内未 被调用的数据中的任意至少一项作为待转移数据。4. 根据权利要求1-3中任意一项所述的方法,其特征在于,所述从本地内存储器所缓 存的数据中筛选出待转移数据,包括: 定时将本地内存储器所缓存的数据中超过数据量阈值的数据作为待转移数据。5. 根据权利要求4所述的方法,其特征在于,所述将本地内存储器所缓存的数据中超 过数据量阈值的数据作为待转移数据之前,还包括: 获取本地内存储器当前的已使用量和当前运行的应用程序数量; 计算所述已使用量和应用程序数量的比值; 根据所述已使用量和应用程序数量的比值计算数据量阈值。6. -种缓存数据处理装置,其特征在于,所述装置包括: 网络缓存模块,用于与服务器建立网络连接;还用于通过所述网络连接拉取所述服务 器所缓存的数据; 本地内存储器缓存模块,用于将拉取的数据直接缓存在本地内存储器中;还用于从本 地内存储器所缓存的数据中筛选出待转移数据; 本地外存储器缓存模块,用于将所述待转移数据从本地内存储器转移到本地外存储器 中缓存。7. 根据权利要求6所述的装置,其特征在于,所述装置还包括数据调用请求接收模块、 第一判断模块、第二判断模块和数据调用模块; 所述数据调用请求接收模块,用于接收数据调用请求; 所述第一判断模块,用于判断本地内存储器所缓存的数据中是否存在所述数据调用请 求所指定的数据; 所述数据调用模块,用于在所述第一判断模块判定本地内存储器所缓存的数据中存在 所述数据调用请求所指定的数据时,从本地内存储器缓存的数据中获取相应的数据; 第二判断模块,用于在所述第一判断模块判定本地内存储器所缓存的数据中不存在所 述数据调用请求所指定的数据时,判断本地外存储器所缓存的数据中是否存在所述数据调 用请求所指定的数据; 所述数据调用模块还用于在所述第二判断模块判定本地外存储器所缓存的数据中存 在所述数据调用请求所指定的数据时,从本地外存储器缓存的数据中获取相应的数据;还 用于在所述第二判断模块判定本地外存储器所缓存的数据中不存在所述数据调用请求所 指定的数据时,从所述服务器拉取所述数据调用请求所指定的数据。8. 根据权利要求6所述的装置,其特征在于,所述本地内存储器缓存模块还用于定时 将本地内存储器所缓存的数据中在至当前时间的指定时间长度的时间范围内被调用次数 最少的数据作为待转移数据;或者, 所述本地内存储器缓存模块还用于定时将本地内存储器所缓存的数据中具有与当前 时间差距最大的最后被调用时间的数据作为待转移数据;或者, 所述本地内存储器缓存模块还用于定时将本地内存储器所缓存的数据中在至当前时 间的指定时间长度的时间范围内未被调用的数据中的任意至少一项作为待转移数据。9. 根据权利要求6-8中任意一项所述的装置,其特征在于,所述本地内存储器缓存模 块还用于定时将本地内存储器所缓存的数据中超过数据量阈值的数据作为待转移数据。10. 根据权利要求9所述的装置,其特征在于,所述装置还包括: 获取模块,用于获取本地内存储器当前的已使用量和当前运行的应用程序数量; 比值计算模块,用于计算所述已使用量和应用程序数量的比值; 数据量阈值计算模块,用于根据所述已使用量和应用程序数量的比值计算数据量阈 值。
【文档编号】G06F12/08GK105988941SQ201510090500
【公开日】2016年10月5日
【申请日】2015年2月28日
【发明人】王刚
【申请人】深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1