CN101075241A - 缓存处理方法以及缓存处理系统 - Google Patents

缓存处理方法以及缓存处理系统 Download PDF

Info

Publication number
CN101075241A
CN101075241A CNA2006101671808A CN200610167180A CN101075241A CN 101075241 A CN101075241 A CN 101075241A CN A2006101671808 A CNA2006101671808 A CN A2006101671808A CN 200610167180 A CN200610167180 A CN 200610167180A CN 101075241 A CN101075241 A CN 101075241A
Authority
CN
China
Prior art keywords
file
cache
subclauses
module
clauses
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006101671808A
Other languages
English (en)
Other versions
CN100530186C (zh
Inventor
王海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2006101671808A priority Critical patent/CN100530186C/zh
Publication of CN101075241A publication Critical patent/CN101075241A/zh
Application granted granted Critical
Publication of CN100530186C publication Critical patent/CN100530186C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种缓存处理方法,该方法包括:A.当需要获取文件时,根据索引在MemoryCache中查找,如果查找到对应的cache条目,则读取其中的文件,否则执行步骤B;B.根据索引在DiskCache中查找,如果查找到对应的cache条目,则在MemoryCache中构造新的条目,将所述DiskCache中对应的cache条目中的文件写入所构造cache条目中,并读取所述文件,否则执行步骤C;C.从网络中下载获取所述文件,在MemoryCache中根据构造新的cache条目,并在该cache条目中写入所述文件。本发明还提供了一种缓存处理系统。本发明提高了用户访问缓存的速度,降低了系统开销,提高了用户浏览WEB网页的速度。

Description

缓存处理方法以及缓存处理系统
技术领域
本发明涉及存储技术中的缓存(cache)技术领域,特别是一种缓存处理方法以及一种缓存处理系统。
背景技术
随着互联网技术的发展,大量的网络用户使用浏览器访问互联网上的WEB服务器,用户通常通过超文本传输协议(HTTP)方式向WEB服务器请求一个URL对应的数据文件,WEB服务器通过HTTP协议对用户请求作出应答,返回所请求的数据文件。
随着用户数量的增大,海量的用户访问竞相使用有限的WEB服务器带宽,导致访问速度下降;同时由于互联网上运营商的不同或者地理环境的差异,也会导致部分用户访问WEB服务器的速度很慢。
WEB加速是一种通过点对点(P2P)的方式加速用户访问WEB服务器网页的方法。用户终端缓存最近访问过的WEB服务器的数据文件。其他用户通过P2P的方式从访问过相同WEB服务器数据文件的用户终端那里获取自身需要的数据文件,并且可以同步使用HTTP方式从WEB服务器获取数据,来加速对WEB服务器的访问。
由于WEB访问的数据文件大多数比较小,而且数量比较多,对于这种形式的大量文件进行数据缓存,其并发磁盘访问会导致系统开销较大,从而影响加速效果。同时,由于WEB加速通过P2P的方式来下载cache文件,安全性问题也需要考虑。因此,如何有效地管理缓存成了急需解决的技术问题。
发明内容
有鉴于此,本发明提出了一种缓存处理方法,用以有效管理WEB加速中用户终端的缓存。本发明的另一个目的是提出一种缓存处理系统。
根据上述目的本发明提出了一种缓存处理方法,该方法包括:
A.当需要获取文件时,根据索引在内存缓存模块中查找,如果查找到对应的缓存条目,则读取其中的文件,否则执行步骤B;
B.根据索引在磁盘缓存模块中查找,如果查找到对应的缓存条目,则在内存缓存模块中构造新的条目,将所述磁盘缓存模块中对应的缓存条目中的文件写入所构造缓存条目中,并读取所述文件,否则执行步骤C;
C.从网络中下载获取所述文件,在内存缓存模块中根据构造新的缓存条目,并在该缓存条目中写入所述文件。
步骤B和步骤C中在内存缓存模块中构造新的缓存条目之前进一步包括判断内存缓存模块是否已满的步骤,如果是,则删除内存缓存模块中最久没有读取的缓存条目,然后执行构造;否则,直接执行构造。
在删除内存缓存模块中所述缓存条目的同时将其写入磁盘缓存模块。
该方法进一步包括:将内存缓存模块中从网络下载的文件的缓存条目写入磁盘缓存模块。
在写入磁盘缓存模块之前进一步包括判断磁盘缓存模块是否已满的步骤,如果是,则删除磁盘缓存模块中最久没有被修改的缓存条目,然后执行写入;否则直接执行写入。
所述在缓存条目中写入文件的步骤包括:获取缓存条目的当前访问状态,当缓存条目的当前访问状态是写方式或读方式时,禁止写入;当缓存条目的当前访问状态是没有用户访问时,在该缓存条目中写入文件,并记录缓存条目的当前状态为写方式;在写入结束之后,记录缓存的当前状态为没有用户访问。
读取缓存条目中的文件的步骤包括:获取缓存条目的当前访问状态,当缓存条目的当前访问状态是写方式时,禁止读取;当缓存条目的当前访问状态是读方式或没有用户访问时,读取缓存条目中的文件,并将缓存条目的读用户数加1;在读取结束之后,当缓存条目的读用户数是否为0时,记录缓存条目的当前状态为没有用户访问。
该方法进一步包括:从磁盘缓存模块中获取缓存条目时,读取其中文件的哈希HASH值,并计算所读取的文件的HASH值,如果两个HASH值相同,则认证所述文件为合法,否则认证所述文件为不合法;和/或,认证通过HTTP方式下载的文件为合法;和/或,部分或者全部通过P2P方式下载文件时,下载对应的HASH值,并计算所下载的文件的HASH值,如果两个HASH值相同,则认证所述文件为合法,否则认证所述文件为不合法。
该方法进一步包括:根据设定的阈值,将大小相同且不超过阈值的多个小文件合并成一个大文件;当读取所述小文件时,从其所在的大文件中读取该小文件;当写入所述小文件时,将其写入由相同大小的小文件组成且具有足够空间的大文件或创建的大文件;当删除所述小文件时,从其所在的大文件中删除该小文件,并且当所述大文件中没有小文件时,删除所述大文件。
所述索引为文件的统一资源定位符(URL)的HASH值。
本发明还提出了一种缓存处理系统,该系统包括内存缓存模块、磁盘缓存模块以及缓存管理模块,其中:
内存缓存模块,用于在内存中存储缓存条目;
磁盘缓存模块,用于在磁盘中存储缓存条目;
缓存管理模块,用于当需要获取文件时,根据索引在内存缓存模块中查找,如果查找到对应的缓存条目则读取到其中的文件,否则根据索引在磁盘缓存模块中查找,如果查找到对应的缓存条目,则在内存缓存模块中构造新的缓存条目,将所述磁盘缓存模块中对应的缓存条目中的文件写入所构造的缓存条目中,并读取所述文件,否则从网络中下载获取所述文件,在内存缓存模块中根据构造新的缓存条目,并在该缓存条目中写入所述文件。
从上述方案中可以看出,由于本发明在内存和磁盘中存储缓存条目,在需要获取网页文件时,根据索引先在内存缓存模块中查找,如果查找到对应的缓存条目,则读取其中的文件,如果没有找到则进一步在磁盘缓存模块中查找,如果查找到对应的缓存条目,则在内存缓存模块中构造新的缓存条目,将所述磁盘缓存模块中对应的缓存条目中的文件写入所构造的缓存条目中,从而获取到所述文件,否则从网络中下载获取所述文件,然后在内存缓存模块中根据构造新的缓存条目,并在该缓存条目中写入所述文件,通过上述方案,本发明提高了用户访问缓存的速度,降低了系统开销,提高了用户浏览WEB网页的速度。
附图说明
图1为本发明实施例中缓存处理系统的结构示意图;
图2为本发明实施例中的cache条目的结构示意图;
图3为本发明实施例中对缓存进行处理的流程示意图;
图4为本发明实施例中在DiskCache中写入cache条目的流程示意图;
图5为本发明实施例中访问cache条目的流程示意图;
图6为本发明实施例中对cache文件进行合法性认证的流程示意图;
图7为本发明实施例中大文件的结构示意图;
图8为本发明实施例中写入小文件的流程示意图;
图9为本发明实施例中删除小文件的流程示意图;。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。
图1所示的是本发明实施例中缓存处理系统的结构示意图。参照图1,该系统包括缓存管理模块(CacheMgr)、内存缓存模块(MemoryCache)以及磁盘缓存模块(DiskCache)。
其中,CacheMgr用于管理MemoryCache和DiskCache中缓存数据的写入、读取等操作,其它模块访问缓存都需要以CacheMgr为接口。位于内存中的MemoryCache和位于磁盘中的DiskCache分别用于存储内存中的cache条目和磁盘中的cache条目(Entry)。众所周知,根据访问内存和访问磁盘的特点,对于MemoryCache的访问较快,而对于DiskCache的访问较慢。
MemoryCache是由存储在内存中的cache条目组成,并将内存中的cache条目通过哈希(HASH)表的形式组织起来。在MemoryCache中,主要保存着cache文件、cache条目表(CacheEntryTable)以及MemoryCache的一些属性值,例如最大字节数(MaxBytes)、最大条目数(MaxEntryCount)、MemoryCache的实际字节数(Size)、实际文件数(EntryCount)、删除旧文件的链表(EvicLink)。
DiskCache则记录了磁盘上的cache文件及其索引信息,DiskCache将磁盘上cache文件的索引信息通过HASH表的形式组织起来。索引信息主要包括cache文件名、cache文件的大小,文件块ID等。在DiskCache中,主要保存着cache文件、cache条目表(CacheRecordTable)以及DiskCache的一些属性值,例如最大字节数(MaxBytes)、最大条目数(MaxFileCount)、DiskCache的实际字节数(Size)、实际文件数(FileCount)、删除旧文件的链表(EvicLink)。
图2所示的是cache条目的组织结构图,描述了用于WEB加速的cache条目的整体组织形式,cahe条目图描述了每个文件的URL对应的cache条目的内容。参照图2,每个cache条目记录了一个URL对应的HTTP头部、HTTP数据、HTTP数据有效性信息(Expiretime、LastModifyTime)等在内存中的缓存。在cache条目中,索引(Key)是对URL进行HASH后得到的Key,可以根据该索引查找对应的cache条目;FileHash是对cache文件进行HASH得到的HASH值,可以用来验证文件的安全性;其余的都是现有HTTP协议中规定的内容,这里不再赘述。可以直接使用WEB文件的URL作为索引对文件进行缓存,但是不同URL的长度差别比较大,作为索引在具体实现上需要将索引的长度设置得很大,因此在本发明实施例中,将URL进行HASH,得到长度统一的HASH值,把URL通过HASH得到一个固定长度的Key。然后利用这个HASH值作为索引,这样使得本发明的技术方案实现起来比较方便。MemoryCache中拥有一个cache条目HASH表,其key值由上面描述的URL通过HASH得到,对应的取值(value)则是内存中的cache条目。DiskCache中拥有一个cache索引信息HASH表,其key值由上面描述的URL通过HASH得到,对应的value则是cache文件的索引信息。
图3所示的是WEB加速中浏览器或其它装置需要获取cache文件时的流程示意图。参照图3,该流程包括以下步骤:
步骤101至步骤102,在WEB加速过程中,需要获取某URL的WEB文件时,则通过CacheMgr获取。CacheMgr根据计算得到的该URL的HASH值在MemoryCache中查找,看内存中是否有对应的cache条目存在,如果有则直接命中,执行步骤103;否则,执行步骤104及其后续步骤。
步骤103,从MemoryCache的cache条目中读取对应的文件,并进一步提供给相应模块,例如浏览器等,然后本流程结束。
步骤104至步骤105,CacheMgr根据URL的HASH值在DiskCache中查找,判断是否有对应的cache条目存在,如果有,则需要将该cache条目从DiskCache读取并写入到MemoryCache中,因此执行步骤106及其后续步骤;否则,需要从网络下载该文件,并创建新cache条目写入MemoryCache,则执行步骤109及其后续步骤。
步骤106,由于MemoryCache有最大占用内存空间和最大cache条目数的限制,所以在本步骤中判断MemoryCache是否已满,即cache使用内存是否超过了上述限制,如果是,则执行步骤107及其后续步骤;否则执行步骤108。
步骤107,CacheMgr将MemoryCache中一些最久没有被访问过的cache条目刷新到磁盘上去,即将LastFetchTime最早的一些cache条目删除,并写入DiskCache。
步骤108,CacheMgr根据DiskCache中的索引信息,在MemoryCache中构造新的cache条目,将DiskCache中所述cache条目中的文件写入所构造的cache条目中,并读取到所述文件,然后可以进一步将该文件提供给相应的模块,如浏览器等,至此本流程结束。
步骤109,判断MemoryCache是否已满,如果是,则执行步骤110及其后续步骤;否则,执行步骤111。
步骤110,CacheMgr将MemoryCache中一些最久没有被访问过的cache条目刷新到磁盘上去,即将LastFetchTime最早的一些cache条目删除,并写入DiskCache。
步骤111,根据下载的文件,在MemoryCache创建对应的新cache条目,将URL的HASH值作为cache条目中的Key,并将该文件写入新创建的cache条目,然后可以进一步将下载的文件提供给相应的模块,如浏览器等,至此本流程结束。
在用户访问cache获取文件完成之后,进一步可以在适当的时候,例如在系统空闲的时候,将MemoryCache中最久没有被访问的一些cache条目删除,并写入到DiskCache中,并且更新DiskCache的cache索引信息。另外,在上述步骤107和110中也需要将cache条目写入磁盘。图4所示的就是将cache条目写入DiskCache的流程示意图。参照图4,该流程包括以下步骤:
步骤201,由于DiskCache有最大占用磁盘空间和最大cache文件数的限制,因此,CacheMgr判断DiskCache是否已满,即cache使用是否超过了上述限制,如果是,则执行步骤202及其后续步骤;否则,执行步骤203。
步骤202,从磁盘上删除一些最久没有被更新的cache条目,即LastModifyTime最老的cache文件,并且删除对应的磁盘索引条目。
步骤203,将所述的MemoryCache中的cache条目写入DiskCache。
在上述流程中,CacheMgr需要对MemoryCache及DiskCache中的cache条目进行访问。对cache条目的访问有读和写两种方式。读方式访问是从cache条目中读取URL对应的HTTP头部以及HTTP文件等信息。写方式访问是将HTTP头部以及HTTP文件等信息写入cache条目中,以备后续访问。
如图5所示,本发明实施例进一步提出了对cache条目进行访问的具体流程。在本流程中,需要在cache条目中进一步记录自己的当前访问状态,包括访问方式以及以读方式访问自己的用户数,即读用户数。其中,访问方式可以分为:读方式、写方式和没有用户访问。
参照图5,该流程包括以下步骤:
步骤301,从cache条目中读取cache条目的当前访问状态,如果是写方式,则拒绝这次访问,然后可以开始下次访问,再次执行步骤301;如果是读方式,则执行步骤302及其后续步骤;如果是没有用户访问,则执行步骤307及其后续步骤。
步骤302,判断当前是要进行读取还是写入,如果是写入,则拒绝这次访问,然后可以开始下次访问,再次执行步骤301;如果是读方式,则执行步骤303及其后续步骤。
步骤303,以读方式访问cache条目,并将当前状态中的读用户数加1。
步骤304,读取cache条目中的文件结束之后,将读用户数减1。
步骤305,判断当前的读用户数是否等于0,如果是,则执行步骤306及其后续步骤,否则可以开始下次访问,再次执行步骤301。
步骤306,记录当前状态为没有用户访问,然后可以开始下次访问,再次执行步骤301。
步骤307,判断当前是要进行读取还是写入,如果是读取,则执行步骤303及其后续步骤;如果是写入,则执行步骤308及其后续步骤。
步骤308,以写方式访问cache条目,写入文件及相关信息。
步骤309,写入结束之后,记录cache条目的当前状态为没有用户访问。然后,可以执行下一次访问,再次执行步骤301。
在图5所示的流程中,根据所要进行的是写入还是读取可以分为如下两种情形:
情形1:在cache条目中写入文件。获取cache条目的当前访问状态,当cache条目的当前访问状态是写方式或读方式时,禁止写入;当cache条目的当前访问状态是没有用户访问时,在该cache条目中写入文件,并记录cache条目的当前状态为写方式;在写入结束之后,记录cache的当前状态为没有用户访问。
情形2:读取cache条目中的文件。获取cache条目的当前访问状态,当cache条目的当前访问状态是写方式时,禁止读取;当cache条目的当前访问状态是读方式或没有用户访问时,读取cache条目中的文件,并将cache条目的读用户数加1;在读取结束之后,当cache条目的读用户数为0时,记录cache条目的当前状态为没有用户访问。
在读取内存中的cache条目的时候,可以进一步对其合法性进行认证。cache条目中HTTP头部和HTTP文件的来源可能有两种:从磁盘上的cache条目中获取的,或者用户从网络中下载并以写方式写入cache条目的。其中,从网络中下载可以分为完全是HTTP方式下载的以及不完全是HTTP方式下载的,并且不完全是HTTP方式下载的又可以分为完全是P2P方式下载的以及由P2P方式和HTTP方式协同下载的。
如图6所示的是对cache条目进行合法性认证的流程示意图。参照图6,该流程包括:
步骤401,判断该cache条目是从磁盘中获取的,还是从网络中下载的,如果是从磁盘中获取的,则执行步骤402及其后续步骤;如果是从网络中下载的,则执行步骤403及其后续步骤。
步骤402,在从磁盘上读取cache文件时,在读取HTTP头部和HTTP文件的同时,从磁盘上读取cache文件的HASH值V1。然后,对HTTP头部和HTTP文件做一次HASH计算得到一个新的HASH值V2。判断V1是否等于V2,如果等于,则认为cache文件是合法的,否则认为cache文件是不合法的,结束本流程。
步骤403,判断所下载写入cache条目的文件是否是完全由HTTP方式从WEB服务器下载的,如果是,则认为其是合法的,并且对HTTP头部和HTTP文件做一次HASH计算得到一个HASH值,以备后续使用,然后结束本流程;否则,执行步骤404及其后续步骤。
步骤404,这种情况的HTTP头部和HTTP文件有部分或者全部以P2P方式下载获取的,在下载获取同时也会通过P2P方式获取对方缓存中该cache文件的HASH值V3。然后,对本地的HTTP头部和HTTP文件做一次HASH计算,得到一个新的HASH值V4。判断V3是否等于V4,如果等于,则认为cache文件是合法的,否则认为cache文件是不合法的,并结束本流程。
在WEB加速过程中,突发性大量小文件写入会导致系统的CPU开销较高,如果在访问cache条目的同时将HTTP头部和文件等内容写入磁盘文件,更会降低用户访问cache效率,从而影响WEB加速的效果。本发明实施例为了提高用户访问cache的效率,从而进一步提高WEB加速的效果,提出了cache文件异步磁盘写入和大文件合并的方法。
cache文件异步磁盘写入是指,用户访问cache的时候只是将cache文件写入到cache条目的内存中,访问完成后将对应的cache条目提交到一个cache刷新链表中去。CacheMgr提供一个独立的刷新线程,根据系统的繁忙情况,在系统闲时将刷新链表中的cache条目的内容写到磁盘上去,并且同时更新DiskCache对应的索引信息。
大文件合并是通过将多个小文件合并成一个大文件,从而减少了cache条目中文件打开关闭的次数,减少系统开销,进一步提高访问cache的速度。
在这里,将大小小于阈值的文件定义为小文件,而将大小大于阈值的文件定义为大文件,不妨以阈值为32KB为例说明。同时,按照文件大小分类,例如:小于1KB的文件,1KB-2KB的文件,2KB-4BK的文件,4KB-8KB的文件,8KB-16KB的文件,16K-32K的文件。
将相同类别的小文件合并成一个大文件,而对于大小超过32KB的文件则不需要合并,可以设定大文件的最大大小为320KB。每个大文件的头部有索引信息,记录自己的使用情况。在本实施例中,大文件头部不包括在所述320KB中。下面以小于1K的小文件合并成的大文件为例说明,其他情况可以类推,这里不再赘述。
参照图7,整个大文件分成两个部分:大文件头部和小文件块组成的文件实体部分。大文件头部记录了以下信息:没有被使用的小文件的个数(UnusedCounts),第一个没有被使用的小文件块ID(FirstUnusedID),一个大小为320Byte的无符号整型(unsignedshort)索引数组(UnusedIDs),数组的每个成员对应于一个小文件块,如果该小文件块还没有被使用,那么其内容为下一个没有被使用的小文件块的ID。每个小文件块中都可以存放一个大小为1KB的文件或小于1KB的文件。
参照图8,当用户写入一个大小不超过1KB的文件的过程如下:
步骤501,找到一个还有空闲小文件块的大文件或者创建一个大文件,所找到的大文件中小文件的大小类别与所要写入的小文件相同。
步骤502,读取FirstUnuseID,将所要写入的小文件写入第一个空闲的小文件块。
步骤503,更新大文件头部,即:
FirstUnusedID=UnusedIDs[FirstUnusedID]
UnusedCounts=UnusedCounts+1
参照图9,当用户删除一个大小不超过1KB的小文件的过程如下:
步骤601,根据DiskCache的索引信息找到对应的大文件和小文件块ID:IDi,然后删除所要删除的小文件。
步骤602,更新大文件头部,即:
UnusedIDs[IDi]=FirstUnusedID
FirstUnusedID=IDi
UnusedCounts=UnusedCounts-1
步骤603,当此时的UnusedCounts等于320时,说明这个大文件已经没有小文件了,那么删除这个大文件。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1、一种缓存处理方法,其特征在于,该方法包括:
A.当需要获取文件时,根据索引在内存缓存模块中查找,如果查找到对应的缓存条目,则读取其中的文件,否则执行步骤B;
B.根据索引在磁盘缓存模块中查找,如果查找到对应的缓存条目,则在内存缓存模块中构造新的条目,将所述磁盘缓存模块中对应的缓存条目中的文件写入所构造缓存条目中,并读取所述文件,否则执行步骤C;
C.从网络中下载获取所述文件,在内存缓存模块中根据构造新的缓存条目,并在该缓存条目中写入所述文件。
2、根据权利要求1所述的方法,其特征在于,步骤B和步骤C中在内存缓存模块中构造新的缓存条目之前进一步包括判断内存缓存模块是否已满的步骤,如果是,则删除内存缓存模块中最久没有读取的缓存条目,然后执行构造;否则,直接执行构造。
3、根据权利要求2所述的方法,其特征在于,在删除内存缓存模块中所述缓存条目的同时将其写入磁盘缓存模块。
4、根据权利要求1所述的方法,其特征在于,该方法进一步包括:将内存缓存模块中从网络下载的文件的缓存条目写入磁盘缓存模块。
5、根据权利要求3或4所述的方法,其特征在于,在写入磁盘缓存模块之前进一步包括判断磁盘缓存模块是否已满的步骤,如果是,则删除磁盘缓存模块中最久没有被修改的缓存条目,然后执行写入;否则直接执行写入。
6、根据权利要求1所述的方法,其特征在于,所述在缓存条目中写入文件的步骤包括:
获取缓存条目的当前访问状态,当缓存条目的当前访问状态是写方式或读方式时,禁止写入;
当缓存条目的当前访问状态是没有用户访问时,在该缓存条目中写入文件,并记录缓存条目的当前状态为写方式;在写入结束之后,记录缓存的当前状态为没有用户访问。
7、根据权利要求1所述的方法,其特征在于,读取缓存条目中的文件的步骤包括:
获取缓存条目的当前访问状态,当缓存条目的当前访问状态是写方式时,禁止读取;
当缓存条目的当前访问状态是读方式或没有用户访问时,读取缓存条目中的文件,并将缓存条目的读用户数加1;在读取结束之后,当缓存条目的读用户数是否为0时,记录缓存条目的当前状态为没有用户访问。
8、根据权利要求1所述的方法,其特征在于,该方法进一步包括:
从磁盘缓存模块中获取缓存条目时,读取其中文件的哈希HASH值,并计算所读取的文件的HASH值,如果两个HASH值相同,则认证所述文件为合法,否则认证所述文件为不合法;和/或,
认证通过HTTP方式下载的文件为合法;和/或,
部分或者全部通过点对点方式下载文件时,下载对应的HASH值,并计算所下载的文件的HASH值,如果两个HASH值相同,则认证所述文件为合法,否则认证所述文件为不合法。
9、根据权利要求1所述的方法,其特征在于,该方法进一步包括:
根据设定的阈值,将大小相同且不超过阈值的多个小文件合并成一个大文件;
当读取所述小文件时,从其所在的大文件中读取该小文件;
当写入所述小文件时,将其写入由相同大小的小文件组成且具有足够空间的大文件或创建的大文件;
当删除所述小文件时,从其所在的大文件中删除该小文件,并且当所述大文件中没有小文件时,删除所述大文件。
10、一种缓存处理系统,其特征在于,该系统包括内存缓存模块、磁盘缓存模块以及缓存管理模块,其中:
内存缓存模块,用于在内存中存储缓存条目;
磁盘缓存模块,用于在磁盘中存储缓存条目;
缓存管理模块,用于当需要获取文件时,根据索引在内存缓存模块中查找,如果查找到对应的缓存条目则读取到其中的文件,否则根据索引在磁盘缓存模块中查找,如果查找到对应的缓存条目,则在内存缓存模块中构造新的缓存条目,将所述磁盘缓存模块中对应的缓存条目中的文件写入所构造的缓存条目中,并读取所述文件,否则从网络中下载获取所述文件,在内存缓存模块中根据构造新的缓存条目,并在该缓存条目中写入所述文件。
CNB2006101671808A 2006-12-26 2006-12-26 缓存处理方法以及缓存处理系统 Active CN100530186C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101671808A CN100530186C (zh) 2006-12-26 2006-12-26 缓存处理方法以及缓存处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101671808A CN100530186C (zh) 2006-12-26 2006-12-26 缓存处理方法以及缓存处理系统

Publications (2)

Publication Number Publication Date
CN101075241A true CN101075241A (zh) 2007-11-21
CN100530186C CN100530186C (zh) 2009-08-19

Family

ID=38976294

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101671808A Active CN100530186C (zh) 2006-12-26 2006-12-26 缓存处理方法以及缓存处理系统

Country Status (1)

Country Link
CN (1) CN100530186C (zh)

Cited By (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710327A (zh) * 2009-12-04 2010-05-19 深圳创维数字技术股份有限公司 一种嵌入式浏览器本地临时文件的缓存方法
CN101877010A (zh) * 2010-06-12 2010-11-03 中兴通讯股份有限公司 分布式文件系统及其协存储方法
CN101908077A (zh) * 2010-08-27 2010-12-08 华中科技大学 一种适用于云备份的重复数据删除方法
CN101576855B (zh) * 2009-06-19 2011-05-04 深圳市科陆电子科技股份有限公司 一种基于缓存的数据存储系统及方法
CN102054031A (zh) * 2010-12-22 2011-05-11 上海锐起信息技术有限公司 无盘系统中实现网络磁盘本地写缓存控制的方法
CN102253941A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种缓存更新方法和缓存更新装置
CN102368258A (zh) * 2011-09-30 2012-03-07 广州市动景计算机科技有限公司 一种网页页面缓存管理方法及其系统
CN102411631A (zh) * 2011-12-22 2012-04-11 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存的方法
CN102447688A (zh) * 2010-10-15 2012-05-09 盛绩信息技术(上海)有限公司 网页游戏资源加速器及加速方法
CN102479250A (zh) * 2010-11-26 2012-05-30 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存方法
CN102566999A (zh) * 2010-12-31 2012-07-11 新奥特(北京)视频技术有限公司 一种基于缓存的图标读取方法
CN102609364A (zh) * 2012-02-14 2012-07-25 华中科技大学 缓存交换方法
CN102622347A (zh) * 2011-01-26 2012-08-01 腾讯科技(深圳)有限公司 图片管理方法及移动终端
CN102663096A (zh) * 2012-04-11 2012-09-12 北京像素软件科技股份有限公司 一种基于数据缓存技术读取数据的方法
WO2012174907A1 (zh) * 2011-06-21 2012-12-27 中兴通讯股份有限公司 一种用户前端(cpe)并行升级版本的方法及实现系统
CN103051977A (zh) * 2013-01-11 2013-04-17 乐视网信息技术(北京)股份有限公司 一种处理p2p缓存数据的方法
CN102117309B (zh) * 2010-01-06 2013-04-17 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
CN103077198A (zh) * 2012-12-26 2013-05-01 中标软件有限公司 一种操作系统及其文件缓存定位方法
WO2013071779A1 (en) * 2011-11-15 2013-05-23 Tencent Technology (Shenzhen) Company Limited Method and device for accessing web pages
CN103246611A (zh) * 2012-02-07 2013-08-14 腾讯科技(深圳)有限公司 一种文件处理方法及系统
CN103279562A (zh) * 2013-06-09 2013-09-04 网易(杭州)网络有限公司 一种用于数据库二级缓存的方法、装置及数据库存储系统
CN103294718A (zh) * 2012-02-29 2013-09-11 腾讯科技(深圳)有限公司 网页缓存管理方法和装置
WO2013135003A1 (zh) * 2012-03-15 2013-09-19 中兴通讯股份有限公司 一种嵌入式网络代理系统、终端设备及代理方法
CN103369284A (zh) * 2012-03-31 2013-10-23 浙江大华技术股份有限公司 一种音视频数据预录方法及装置
CN103514203A (zh) * 2012-06-27 2014-01-15 腾讯科技(深圳)有限公司 以阅读模式浏览网页的方法及系统
CN103873562A (zh) * 2014-02-27 2014-06-18 车智互联(北京)科技有限公司 缓存方法和缓存系统
CN103970585A (zh) * 2013-01-31 2014-08-06 杭州华三通信技术有限公司 创建虚拟机的方法及装置
CN104298562A (zh) * 2014-10-10 2015-01-21 重庆邮电大学 一种游戏开发的资源管理方法及系统
CN104331428A (zh) * 2014-10-20 2015-02-04 暨南大学 一种小文件和大文件的存储及访问方法
CN104363182A (zh) * 2014-11-04 2015-02-18 浪潮(北京)电子信息产业有限公司 一种基于双层缓存的负载均衡方法及系统
CN104424116A (zh) * 2013-08-19 2015-03-18 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存的方法及系统
CN104423784A (zh) * 2013-09-04 2015-03-18 腾讯科技(深圳)有限公司 一种页面显示的方法和装置
CN104572643A (zh) * 2013-10-10 2015-04-29 北大方正集团有限公司 搜索方法和搜索引擎
CN104572194A (zh) * 2014-12-30 2015-04-29 北京奇虎科技有限公司 一种模块加载方法和装置
CN104794068A (zh) * 2015-02-04 2015-07-22 北京神州云科数据技术有限公司 一种flush缓存的方法及装置
CN104978154A (zh) * 2015-07-27 2015-10-14 武汉天喻信息产业股份有限公司 一种基于缓存操作的flash快速读写方法及系统
CN105718291A (zh) * 2016-01-25 2016-06-29 山东蓝创网络技术有限公司 一种混合桌面应用的多级缓存加速方法
CN102566999B (zh) * 2010-12-31 2016-12-14 新奥特(北京)视频技术有限公司 一种基于缓存的图标读取方法
CN106294206A (zh) * 2015-05-21 2017-01-04 广州华多网络科技有限公司 一种缓存数据处理方法以及装置
CN106372109A (zh) * 2016-08-19 2017-02-01 中国银联股份有限公司 互联网资源文件缓存方法及装置
CN106570134A (zh) * 2016-10-27 2017-04-19 西安合众思壮导航技术有限公司 一种文件组织方法和装置
CN106599247A (zh) * 2016-12-19 2017-04-26 北京奇虎科技有限公司 LSM‑tree结构中数据文件的合并方法及装置
CN106776368A (zh) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 一种数据读取时的缓存管理方法、装置及系统
CN107463508A (zh) * 2017-07-19 2017-12-12 北京微影时代科技有限公司 脚本缓存清除方法、装置、电子设备及存储介质
CN102737068B (zh) * 2011-04-15 2018-06-05 北京百度网讯科技有限公司 一种用于对检索数据进行缓存管理的方法与设备
CN108182187A (zh) * 2016-12-08 2018-06-19 腾讯科技(深圳)有限公司 数据缓存方法及装置
CN108846141A (zh) * 2018-07-11 2018-11-20 中国建设银行股份有限公司 一种离线缓存加载方法及装置
CN108965910A (zh) * 2018-08-09 2018-12-07 网宿科技股份有限公司 一种视频缓存方法及播放器
CN109361714A (zh) * 2018-12-18 2019-02-19 中国移动通信集团江苏有限公司 用户登录鉴权方法、装置、设备及计算机存储介质
CN109815425A (zh) * 2018-12-14 2019-05-28 平安科技(深圳)有限公司 缓存数据处理方法、装置、计算机设备和存储介质
CN110597452A (zh) * 2018-06-13 2019-12-20 中国移动通信有限公司研究院 存储系统的数据处理方法及装置、存储服务器及存储介质
WO2020211554A1 (zh) * 2019-04-19 2020-10-22 深圳前海微众银行股份有限公司 缓存处理方法、装置、设备及计算机可读存储介质
CN112734982A (zh) * 2021-01-15 2021-04-30 北京小马慧行科技有限公司 无人车驾驶行为数据的存储方法和系统
CN116599973A (zh) * 2023-07-11 2023-08-15 天津卓朗昆仑云软件技术有限公司 基于bt服务加速组件的数据传输方法和装置

Cited By (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101576855B (zh) * 2009-06-19 2011-05-04 深圳市科陆电子科技股份有限公司 一种基于缓存的数据存储系统及方法
CN101710327A (zh) * 2009-12-04 2010-05-19 深圳创维数字技术股份有限公司 一种嵌入式浏览器本地临时文件的缓存方法
CN102117309B (zh) * 2010-01-06 2013-04-17 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
CN102253941A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种缓存更新方法和缓存更新装置
CN101877010A (zh) * 2010-06-12 2010-11-03 中兴通讯股份有限公司 分布式文件系统及其协存储方法
CN101908077A (zh) * 2010-08-27 2010-12-08 华中科技大学 一种适用于云备份的重复数据删除方法
CN101908077B (zh) * 2010-08-27 2012-11-21 华中科技大学 一种适用于云备份的重复数据删除方法
CN102447688A (zh) * 2010-10-15 2012-05-09 盛绩信息技术(上海)有限公司 网页游戏资源加速器及加速方法
CN102479250A (zh) * 2010-11-26 2012-05-30 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存方法
CN102054031A (zh) * 2010-12-22 2011-05-11 上海锐起信息技术有限公司 无盘系统中实现网络磁盘本地写缓存控制的方法
CN102566999A (zh) * 2010-12-31 2012-07-11 新奥特(北京)视频技术有限公司 一种基于缓存的图标读取方法
CN102566999B (zh) * 2010-12-31 2016-12-14 新奥特(北京)视频技术有限公司 一种基于缓存的图标读取方法
CN102622347A (zh) * 2011-01-26 2012-08-01 腾讯科技(深圳)有限公司 图片管理方法及移动终端
CN102737068B (zh) * 2011-04-15 2018-06-05 北京百度网讯科技有限公司 一种用于对检索数据进行缓存管理的方法与设备
WO2012174907A1 (zh) * 2011-06-21 2012-12-27 中兴通讯股份有限公司 一种用户前端(cpe)并行升级版本的方法及实现系统
CN102368258B (zh) * 2011-09-30 2014-11-26 广州市动景计算机科技有限公司 一种网页页面缓存管理方法及其系统
CN102368258A (zh) * 2011-09-30 2012-03-07 广州市动景计算机科技有限公司 一种网页页面缓存管理方法及其系统
WO2013071779A1 (en) * 2011-11-15 2013-05-23 Tencent Technology (Shenzhen) Company Limited Method and device for accessing web pages
CN102411631A (zh) * 2011-12-22 2012-04-11 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存的方法
US9684660B2 (en) 2012-02-07 2017-06-20 Tencent Technology (Shenzhen) Company Limited File processing method and system
CN103246611A (zh) * 2012-02-07 2013-08-14 腾讯科技(深圳)有限公司 一种文件处理方法及系统
WO2013117142A1 (en) * 2012-02-07 2013-08-15 Tencent Technology (Shenzhen) Company Limited File processing method and system
CN103246611B (zh) * 2012-02-07 2016-01-20 腾讯科技(深圳)有限公司 一种文件处理方法及系统
CN102609364A (zh) * 2012-02-14 2012-07-25 华中科技大学 缓存交换方法
CN103294718A (zh) * 2012-02-29 2013-09-11 腾讯科技(深圳)有限公司 网页缓存管理方法和装置
WO2013135003A1 (zh) * 2012-03-15 2013-09-19 中兴通讯股份有限公司 一种嵌入式网络代理系统、终端设备及代理方法
CN103369284A (zh) * 2012-03-31 2013-10-23 浙江大华技术股份有限公司 一种音视频数据预录方法及装置
CN102663096A (zh) * 2012-04-11 2012-09-12 北京像素软件科技股份有限公司 一种基于数据缓存技术读取数据的方法
CN103514203A (zh) * 2012-06-27 2014-01-15 腾讯科技(深圳)有限公司 以阅读模式浏览网页的方法及系统
CN103077198B (zh) * 2012-12-26 2016-09-21 中标软件有限公司 一种操作系统及其文件缓存定位方法
CN103077198A (zh) * 2012-12-26 2013-05-01 中标软件有限公司 一种操作系统及其文件缓存定位方法
CN103051977A (zh) * 2013-01-11 2013-04-17 乐视网信息技术(北京)股份有限公司 一种处理p2p缓存数据的方法
CN103970585A (zh) * 2013-01-31 2014-08-06 杭州华三通信技术有限公司 创建虚拟机的方法及装置
WO2014117533A1 (en) * 2013-01-31 2014-08-07 Hangzhou H3C Technologies Co., Ltd. Creating virtual machines
CN103970585B (zh) * 2013-01-31 2017-10-27 新华三技术有限公司 创建虚拟机的方法及装置
CN103279562A (zh) * 2013-06-09 2013-09-04 网易(杭州)网络有限公司 一种用于数据库二级缓存的方法、装置及数据库存储系统
CN103279562B (zh) * 2013-06-09 2017-10-10 网易(杭州)网络有限公司 一种用于数据库二级缓存的方法、装置及数据库存储系统
CN104424116A (zh) * 2013-08-19 2015-03-18 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存的方法及系统
CN104424116B (zh) * 2013-08-19 2017-07-07 中国科学院声学研究所 一种嵌入式浏览器磁盘缓存的方法及系统
CN104423784A (zh) * 2013-09-04 2015-03-18 腾讯科技(深圳)有限公司 一种页面显示的方法和装置
CN104572643A (zh) * 2013-10-10 2015-04-29 北大方正集团有限公司 搜索方法和搜索引擎
CN104572643B (zh) * 2013-10-10 2018-06-19 北大方正集团有限公司 搜索方法和搜索引擎
CN103873562A (zh) * 2014-02-27 2014-06-18 车智互联(北京)科技有限公司 缓存方法和缓存系统
CN104298562A (zh) * 2014-10-10 2015-01-21 重庆邮电大学 一种游戏开发的资源管理方法及系统
CN104331428B (zh) * 2014-10-20 2017-07-04 暨南大学 一种小文件和大文件的存储及访问方法
CN104331428A (zh) * 2014-10-20 2015-02-04 暨南大学 一种小文件和大文件的存储及访问方法
CN104363182B (zh) * 2014-11-04 2018-07-31 浪潮(北京)电子信息产业有限公司 一种基于双层缓存的负载均衡方法及系统
CN104363182A (zh) * 2014-11-04 2015-02-18 浪潮(北京)电子信息产业有限公司 一种基于双层缓存的负载均衡方法及系统
CN104572194A (zh) * 2014-12-30 2015-04-29 北京奇虎科技有限公司 一种模块加载方法和装置
CN104572194B (zh) * 2014-12-30 2019-03-08 北京奇虎科技有限公司 一种模块加载方法和装置
CN104794068B (zh) * 2015-02-04 2018-05-22 深圳神州数码云科数据技术有限公司 一种flush缓存的方法及装置
CN104794068A (zh) * 2015-02-04 2015-07-22 北京神州云科数据技术有限公司 一种flush缓存的方法及装置
CN106294206B (zh) * 2015-05-21 2022-04-29 广州华多网络科技有限公司 一种缓存数据处理方法以及装置
CN106294206A (zh) * 2015-05-21 2017-01-04 广州华多网络科技有限公司 一种缓存数据处理方法以及装置
CN104978154A (zh) * 2015-07-27 2015-10-14 武汉天喻信息产业股份有限公司 一种基于缓存操作的flash快速读写方法及系统
CN105718291A (zh) * 2016-01-25 2016-06-29 山东蓝创网络技术有限公司 一种混合桌面应用的多级缓存加速方法
CN106372109A (zh) * 2016-08-19 2017-02-01 中国银联股份有限公司 互联网资源文件缓存方法及装置
CN106570134A (zh) * 2016-10-27 2017-04-19 西安合众思壮导航技术有限公司 一种文件组织方法和装置
CN106776368A (zh) * 2016-11-29 2017-05-31 郑州云海信息技术有限公司 一种数据读取时的缓存管理方法、装置及系统
CN108182187A (zh) * 2016-12-08 2018-06-19 腾讯科技(深圳)有限公司 数据缓存方法及装置
CN106599247B (zh) * 2016-12-19 2020-04-17 北京奇虎科技有限公司 LSM-tree结构中数据文件的合并方法及装置
CN106599247A (zh) * 2016-12-19 2017-04-26 北京奇虎科技有限公司 LSM‑tree结构中数据文件的合并方法及装置
CN107463508A (zh) * 2017-07-19 2017-12-12 北京微影时代科技有限公司 脚本缓存清除方法、装置、电子设备及存储介质
CN110597452A (zh) * 2018-06-13 2019-12-20 中国移动通信有限公司研究院 存储系统的数据处理方法及装置、存储服务器及存储介质
CN108846141A (zh) * 2018-07-11 2018-11-20 中国建设银行股份有限公司 一种离线缓存加载方法及装置
CN108846141B (zh) * 2018-07-11 2022-05-24 中国建设银行股份有限公司 一种离线缓存加载方法及装置
CN108965910A (zh) * 2018-08-09 2018-12-07 网宿科技股份有限公司 一种视频缓存方法及播放器
CN108965910B (zh) * 2018-08-09 2022-05-10 网宿科技股份有限公司 一种视频缓存方法及播放器
CN109815425A (zh) * 2018-12-14 2019-05-28 平安科技(深圳)有限公司 缓存数据处理方法、装置、计算机设备和存储介质
CN109361714A (zh) * 2018-12-18 2019-02-19 中国移动通信集团江苏有限公司 用户登录鉴权方法、装置、设备及计算机存储介质
WO2020211554A1 (zh) * 2019-04-19 2020-10-22 深圳前海微众银行股份有限公司 缓存处理方法、装置、设备及计算机可读存储介质
CN112734982A (zh) * 2021-01-15 2021-04-30 北京小马慧行科技有限公司 无人车驾驶行为数据的存储方法和系统
CN116599973A (zh) * 2023-07-11 2023-08-15 天津卓朗昆仑云软件技术有限公司 基于bt服务加速组件的数据传输方法和装置
CN116599973B (zh) * 2023-07-11 2023-09-26 天津卓朗昆仑云软件技术有限公司 基于bt服务加速组件的数据传输方法和装置

Also Published As

Publication number Publication date
CN100530186C (zh) 2009-08-19

Similar Documents

Publication Publication Date Title
CN101075241A (zh) 缓存处理方法以及缓存处理系统
CN1308876C (zh) 书签管理系统和书签管理方法
US8650164B2 (en) Efficient storage and retrieval for large number of data objects
US9575968B2 (en) Intelligent data delivery and storage based on data characteristics
CN1904901A (zh) 用于实施基于内容的文件系统安全性的系统和方法
CN104679898A (zh) 一种大数据访问方法
US8041893B1 (en) System and method for managing large filesystem-based caches
US9154522B2 (en) Network security identification method, security detection server, and client and system therefor
CN101075236A (zh) 一种加快浏览器网页显示的装置和方法
CN1912869A (zh) 一种网络收藏夹的实现方法
CN101042699A (zh) 基于访问控制的安全搜索引擎系统
US20050172077A1 (en) Multi-level persisted template caching
CN1783081A (zh) 在本地缓存远程文件的方法和系统
CN101042695A (zh) 一种搜索结果页面缩略显示方法及系统
CN1943208A (zh) 通过互联网通信网络追踪电子辛迪加内容的系统和方法
CN1434948A (zh) 处理网络文档的方法和装置
WO2013143405A1 (zh) 网络访问的实现方法、装置和系统、以及网络系统
CN103123630A (zh) 一种获取网页内容的方法、系统以及移动终端和服务器
CN102984256B (zh) 一种基于授权方式的元数据的处理方法和系统
US7249219B1 (en) Method and apparatus to improve buffer cache hit rate
CN101046806A (zh) 搜索引擎系统和方法
US9178931B2 (en) Method and system for accessing data by a client from a server
CN101076031A (zh) 一种应用网络硬盘的方法
CN105915619A (zh) 顾及访问热度的网络空间信息服务高性能内存缓存方法
CN1534508A (zh) 一种预览网络资源的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230921

Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518044, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TR01 Transfer of patent right