CN104750715A - 缓存系统中数据淘汰方法、装置、系统及相关服务器设备 - Google Patents
缓存系统中数据淘汰方法、装置、系统及相关服务器设备 Download PDFInfo
- Publication number
- CN104750715A CN104750715A CN201310741724.7A CN201310741724A CN104750715A CN 104750715 A CN104750715 A CN 104750715A CN 201310741724 A CN201310741724 A CN 201310741724A CN 104750715 A CN104750715 A CN 104750715A
- Authority
- CN
- China
- Prior art keywords
- data
- record
- chained list
- eliminate
- access time
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缓存系统中数据淘汰方法、装置、系统及相关服务器设备。其中,缓存系统中数据淘汰方法包括:接收数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,根据所述数据淘汰链表中最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
Description
技术领域
本发明涉及数据库查询技术领域,尤其涉及一种缓存系统中数据淘汰方法、装置、系统及相关服务器设备。
背景技术
在Web2.0时代,互联网上的大部分应用都是将数据保存在关系型数据库中,应用服务器从数据库中读取数据并显示在浏览器中。但是随着数据量的增加和数据访问量的增大,就会出现数据库的负载加重、数据库性能下降、响应缓慢、网站显示延迟等一系列问题,在这种背景下基于内存的缓存系统应运而生。
缓存系统主要用于将访问频繁的数据库结果集缓存在内存,这样应用服务器就可以直接从缓存系统读取一部分目标数据,减少对数据库的访问。如图1所示,为缓存系统在传统数据存储系统中的典型应用架构示意图,由图1可知缓存系统主要作为传统数据库系统的水平扩展。当客户端请求发送到应用服务器时,应用服务器首先去检查目标数据是否缓存在缓存系统中。如果是则直接从缓存系统中读取数据返回,否则去查询数据库系统并同时将目标数据写入到缓存系统。通过这种方式,最近访问的热点数据便会驻留在缓存系统中。根据数据访问的局部性原理,针对热点数据的访问均会由缓存系统来处理,这就大大减轻了数据库的负载。当前,典型的数据缓存系统如Memcached和Redis等,在国内外大部分互联网企业中均得到了广泛的应用。
缓存系统基于内存进行设计,其数据存储容量天然地受制于物理内存大小的限制。当缓存数据容量达到缓存系统的上限时,如果还有新的缓存数据需要写入,那么缓存系统通常会选择淘汰一部分数据。当前,在主流缓存系统中最常用的数据淘汰算法就是最近最少使用(LRU)算法,其核心思想是淘汰最近一段时间内最少被访问的数据,从而提高缓存系统的命中率。如图2a、图2b和图2c所示,为算法实施流程示意图,假定缓存系统容量上限为8条数据记录,分别记为Pair1,Pair2,……Pair8。由图2a、图2b和图2c可知,LRU算法通过一条链表实现对数据的管理,最近一段时间最少被访问的数据处在链表的LRU端,而最近一段时间最多被访问的数据处在链表的MRU(最近最常使用)端。如图2b所示,当其中一条数据记录Pair8被访问后,该记录就被重新链接到MRU端。如图2c所示,当访问一条不在缓存系统中的数据记录Pair2时,处在LRU端的数据记录Pair5会被淘汰出缓存系统,然后将新的数据记录Pair2读进来并将Pair2链接到MRU端。通过这种方式,LRU算法可以保证在一段时间内访问频率较高的数据可以一直驻留在缓存系统中,而访问频率较低的数据则可以及时地被淘汰。
LRU算法实现简单且通用性强,但由于在淘汰数据时仅仅依据数据的访问频率,将可能导致如下问题:同样以上面的LRU算法示例进行说明。假定图2.b中的Pair5来自数据库中记录较多或者未创建有效索引的表,从数据库查询它的平均耗时为200微秒,而图2b中的Pair1来自数据库中记录较少或者创建了有效索引的表,从数据库查询它的平均耗时仅为40微秒。在这种情况下,如果根据LRU算法将最近访问最不频繁的Pair5淘汰,那么应用再次访问Pair5时就需要等待200微秒的时间,但是如果将最近访问比Pair5略频繁的Pair1淘汰,应用再次访问Pair1就只需等待40微秒,淘汰Pair1反而比淘汰Pair5更优。由此可见,仅仅通过访问频率来决定淘汰数据的LRU算法降低了整个缓存系统的数据访问性能。
发明内容
本发明实施例提供一种数据查询及淘汰方法、装置、系统及相关服务器设备,用以提高缓存系统的数据访问性能。
本发明实施例提供一种缓存系统中数据淘汰方法,包括:
接收数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:
确定数据淘汰链表中不包含该数据记录时,淘汰所述数据淘汰链表中最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
本发明实施例提供一种缓存系统中数据淘汰装置,包括:
接收单元,用于接收数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
执行单元,用于针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,淘汰所述数据淘汰链表最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
本发明实施例提供一种缓存服务器,包括上述缓存系统中数据淘汰装置。
本发明实施例提供另外一种缓存系统中数据淘汰方法,包括:
接收数据查询请求;
根据所述数据查询请求确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;
接收数据库系统返回的数据查询结果集;并
记录数据查询执行时间和数据访问时间;
针对所述数据查询请求返回所述数据查询结果集;以及
向缓存服务器发送数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间。
本发明实施例提供另外一种缓存系统中数据淘汰装置,包括:
接收单元,用于接收数据查询请求;以及接收数据库系统返回的数据查询结果集;
查询单元,用于根据所述数据查询请求,确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;
记录单元,用于记录数据查询执行时间和数据访问时间;
返回单元,用于针对所述数据查询请求返回数据查询结果集;
发送单元,用于向缓存服务器发送数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间。
本发明实施例提供一种应用服务器,包括上述第二种缓存系统中数据淘汰装置。
本发明实施例提供一种缓存系统,包括:
客户端设备,用于向应用服务器发送数据查询请求;
应用服务器,用于根据接收到的数据查询请求确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;接收数据库系统返回的数据查询结果集;并记录数据查询执行时间和数据访问时间;向所述客户端设备返回所述数据查询结果集;并向缓存服务器发送数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
缓存服务器,用于针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,淘汰所述数据淘汰链表中最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
本发明实施例提供的缓存系统中数据淘汰方法、装置、系统及相关服务器设备,由于在数据查询信息中不仅包含数据结果集,还包含了数据查询执行时间和数据访问时间,这样,当数据淘汰链表中有数据需要淘汰,若LRU端包含多个数据访问时间相同的数据记录时,可以根据数据查询执行时间淘汰执行最短的数据记录,这样,能够避免执行时间长的数据记录被淘汰后,再次从数据库中查找时造成的数据查找时延增加,从而提高了缓存系统的数据访问性能。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现有技术中,缓存系统在传统数据存储系统中的典型应用架构示意图;
图2a为现有技术中,数据淘汰算法实施流程示意图一;
图2b为现有技术中,数据淘汰算法实施流程示意二;
图2c为现有技术中,数据淘汰算法实施流程示意图三;
图3为本发明实施例中,应用服务器侧实施缓存系统中数据淘汰方法的实施流程示意图;
图4为本发明实施例中,缓存服务器侧实施缓存系统中数据淘汰方法的实施流程示意图;
图5a为本发明实施例中,数据淘汰方法实施流程示意图一;
图5b为本发明实施例中,数据淘汰方法实施流程示意二;
图5c为本发明实施例中,数据淘汰方法实施流程示意图三;
图6为本发明实施例中,应用服务器侧数据淘汰装置的结构示意图;
图7为本发明实施例中,缓存服务器侧数据淘汰装置的结构示意图
图8为本发明实施例中,缓存系统的结构示意图。
具体实施方式
为了提高缓存系统的数据访问性能,本发明实施例提供一种缓存系统中数据淘汰方法、装置、系统及相关服务器设备。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
如他3所示,为应用服务器侧实施缓存系统中数据淘汰方法的实施流程示意图,可以包括以下步骤:
S301、应用服务器接收客户端应用发送的数据查询请求。
S302、应用服务器根据接收到的数据查询请求检查缓存系统中是否包含目标数据,如果包含,执行步骤S303,如果不包含,执行步骤S304。
具体实施时,应用服务器在接收到数据查询请求之后,首先检查缓存系统中是否存在目标数据,因为缓存系统的数据全部存储在内存中,能够提供更快的查询响应能力。具体的,可以包括缓存系统中是否有目标数据和缓存系统中的目标数据是否已经过期。如果目标数据在缓存系统中且没有过期,则视为查询缓存系统命中,及缓存系统中包含目标数据;如果目标数据不在缓存系统中或者目标数据已经过期,则视为查询缓存系统不命中;即缓存系统中不包含目标数据。
S303、从缓存系统中查询目标数据并返回给客户端应用,流程结束。
如果通过步骤S302的检查发现目标数据在缓存系统中且没有过期,则直接通过缓存系统提供的键值访问接口从缓存系统读取目标数据,然后将读取的目标数据返回给客户端应用。
S304、从数据库系统查询目标数据并返回给客户端应用。
如果通过步骤S302的检查发现目标数据不在缓存系统中或目标数据已经过期,则发送数据查询请求到数据库系统,具体实施时,查询请求可以为SQL语句。在接收到应用服务器发送的数据查询请求后,数据库系统会对相应的SQL语句进行语法语义分析、查询计划生成并最终根据查询计划执行相关的物理操作。应用服务器在数据库系统完成处理后获取数据查询结果集并记录数据查询执行时间和数据访问时间,然后将数据查询结果集返回给客户端应用。
S305、应用服务器向缓存服务器发送数据查询信息。
在将从数据库系统得到的数据查询结果集返回给客户端应用之后,应用服务器会向缓存服务器发送数据查询信息以实现热点数据的缓存,其中,数据查询信息中包含有从数据库系统接收到的数据查询结果集以及记录的数据查询执行时间和数据访问时间。为了充分利用网络带宽,减少数据发送次数,应用服务器会以数据块的方式向缓存服务器批量发送数据。
S306、应用服务器清空查询结果集。
应用服务器在完成了相关数据的发送之后,会接收到来自缓存服务器的确认数据接收成功的消息,此时应用服务器会自动清空数据查询结果集以释放内存空间。
如图4所示,为缓存服务器在接收到数据查询信息之后,实施数据淘汰方法的实施流程示意图,可以包括以下步骤:
S401、缓存服务器接收应用服务器发送的数据查询信息。
具体实施时,应用服务器发送到缓存服务器的数据查询结果集、数据查询执行时间和数据访问时间由缓存服务器接收,待所有数据都接收完成后,缓存服务器会向应用服务器发送一条数据接收成功的消息以结束一次数据查询信息的传输。
S402、缓存服务器将数据查询结果集中的数据逐条插入缓存系统。
具体实施时,缓存服务器在成功接收来自应用服务器的数据查询结果集后,缓存服务器会将数据查询结果集中的所有数据记录逐条插入到本地的缓存系统中,这样当客户端应用需要再次访问相同的数据时便可以通过查询缓存系统而不是数据库来获得数据,大大降低数据访问代价。
S403、缓存服务器更新缓存系统的数据淘汰链表。
本发明实施例中通过数据淘汰链表实现对数据记录的管理,数据淘汰链表的两端使用MRU(最近最常使用)和LRU(最近最少使用)加以标识。本发明实施例中,数据淘汰链表中的每个数据记录都附加了数据库查询代价(Cost)和访问时间戳(Timestamp),其中数据库查询代价是缓存服务器从应用服务器接收到的数据查询执行时间,而访问时间戳是数据最近一次被客户端应用访问的时间。需要说明的是,本发明实施例中涉及的访问时间戳不是标准的Unix时间戳,而是从格林威治时间1970年01月01日00时00分00秒起一个可调的时间刻度(譬如几百毫秒或者几秒)总数。假定将时间刻度设置为100秒,那么2012年11月25日21时00分00秒的Unix时间戳就是1353848400,而访问时间戳则是13538484。具体实施时,可以根据数据库查询代价和访问时间戳是选择淘汰数据:访问时间戳越大说明对应的数据最近被访问的越频繁,其在数据淘汰链表中的位置越靠近MRU端,而访问时间戳越小的数据说明最近被访问的越不频繁,该数据的位置越靠近LRU端;另一方面,数据库查询代价越大的数据说明被淘汰后再次从数据库中访问时所需的代价越大,该数据的位置越靠近MRU端,而数据库查询代价越小的数据说明被淘汰后再次访问所需的代价越小,该数据的位置越靠近LRU端。简而言之,访问时间戳越小、数据库查询代价越小的数据越应该被淘汰,因为访问时间戳小说明该数据最近访问不频繁,而数据库查询代价小说明即使该数据被淘汰后再次被访问也可以快速响应客户端应用的查询。
需要说明的是,本发明实施例中,可以调整访问时间戳的精度,比如精确到秒钟或者分钟,这样在同一秒钟或者同一分钟内被访问的数据记录会具有相同的时间戳。
基于此,分别如图5a、图5b和图5c所示,图5a给出了数据淘汰方法的实施流程示意图一,假定缓存系统容量上限为8条数据记录。
如图5b所示,当其中一条数据记录Pair8被访问后,该数据记录的访问时间戳就由88修改为当前的时间戳136并链接到MRU端。
如图5c所示,当访问一条不在缓存系统中的数据记录Pair2时,按照现有技术,处在LRU端的数据记录Pair5会被淘汰出缓存系统,然后将新的数据记录Pair2读进来。而根据本发明实施例,从数据访问频度来看,Pair5与Pair1相同(访问时间戳一致),但是因为Pair1的访问代价更小,所以淘汰Pair1对系统整体性能的影响更小,因此,本发明实施例中,将数据记录Pair1淘汰出缓存系统,然后将新的数据记录Pair2读进来,将其访问时间戳设置为当前时间戳138并链接到MRU端。
S404、缓存服务器清空查询结果集。
缓存服务器完成了数据查询结果集向缓存系统的导入之后,会自动清空已处理的数据查询结果集以释放内存空间。
本发明实施例提供的数据淘汰方法兼顾数据访问频率和数据在数据库中的查询代价,可以保证被淘汰的都是访问频率不高且通过查询数据库也可以较快得到响应的数据,能够最大程度地降低数据淘汰对于系统整体性能的影响。
基于同一发明构思,本发明实施例中还提供了相应的缓存系统中数据淘汰装置及相关服务器设备,由于上述装置及设备解决问题的原理与缓存系统中数据淘汰方法相似,因此上述装置及设备的实施可以参见方法的实施,重复之处不再赘述。
如图6所示,为本发明实施例提供的应用服务器侧数据淘汰装置的结构示意图,包括:
接收单元601,用于接收数据查询请求;以及接收数据库系统返回的查询结果集;
查询单元602,用于根据接收单元601接收到的数据查询请求,确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;
记录单元603,用于记录数据查询执行时间和数据访问时间;
返回单元604,用于针对所述数据查询请求返回接收到的数据查询结果集;
发送单元605,用于向缓存服务器发送数据查询信息。
其中,数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间。
具体实施时,图6所示的数据淘汰装置可以设置于应用服务器中。
如图7所示,为本发明实施例提供的缓存服务器侧数据淘汰装置的结构示意图,包括:
接收单元701,用于接收数据查询信息。
其中,数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间。
执行单元702,用于针对数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,淘汰数据淘汰链表LRU(最近最少使用)端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入数据淘汰链表的MRU(最近最常使用)端。
具体实施时,本发明实施例提供的数据淘汰装置还可以包括插入单元703,可以用于针对每一数据记录,在执行单元702确定数据淘汰链表不包含该数据记录之前,将该数据记录插入缓存系统中。
具体实施时,执行单元702,还可以用于针对每一数据记录,确定数据淘汰链表中包含该数据记录时,根据数据访问时间修改该数据记录在数据淘汰链表中对应的数据访问时间,并将该数据记录插入数据淘汰链表的MRU端。
具体实施时,执行单元702,还可以用于若数据淘汰链表LRU端的各数据记录对应的数据访问时间均不同时,淘汰数据访问时间最早的数据记录。
具体实施时,图7所示的数据淘汰装置可以设置于缓存服务器中。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
如图8所示,为本发明实施例提供的数据淘汰系统的结构示意图,包括:
客户端设备801,用于向应用服务器802发送数据查询请求;
应用服务器802,用于根据接收到的数据查询请求确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;接收数据库系统返回的数据查询结果集;并记录数据查询执行时间和数据访问时间;向客户端设备801返回数据查询结果集;并向缓存服务器803发送数据查询信息,其中,数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
缓存服务器803,用于针对数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,淘汰数据淘汰链表中LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入数据淘汰链表的MRU端。
较佳的,缓存服务器803,还可以用于在确定数据淘汰链表不包含该数据记录之前,将该数据记录插入缓存系统中。
较佳的,缓存服务器803,还可以用于确定数据淘汰链表中包含该数据记录时,根据数据访问时间修改该数据记录在数据淘汰链表中对应的数据访问时间,并将该数据记录插入所述数据淘汰链表的MRU端。
具体实施时,缓存服务器803,还可以用于若数据淘汰链表LRU端的各数据记录对应的数据访问时间均不同时,淘汰数据访问时间最早的数据记录。
本发明实施例提供的缓存系统中数据淘汰方法、装置、系统及相关服务器设备,由于在数据查询信息中不仅包含数据结果集,还包含了数据查询执行时间和数据访问时间,这样,当数据淘汰链表中有数据需要淘汰,若LRU端包含多个数据访问时间相同的数据记录时,可以根据数据查询执行时间淘汰执行最短的数据记录,这样,能够避免执行时间长的数据记录被淘汰后,再次从数据库中查找时造成的数据查找时延增加,从而提高了缓存系统的数据访问性能。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种缓存系统中数据淘汰方法,其特征在于,包括:
接收数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:
确定数据淘汰链表中不包含该数据记录时,根据所述数据淘汰链表中最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
2.如权利要求1所述的方法,其特征在于,在确定数据淘汰链表不包含该数据记录之前,还包括:
将该数据记录插入缓存系统中。
3.如权利要求1所述的方法,其特征在于,还包括:
确定数据淘汰链表中包含该数据记录时,根据所述数据访问时间修改该数据记录在所述数据淘汰链表中对应的数据访问时间,并将该数据记录插入所述数据淘汰链表的MRU端。
4.如权利要求1所述的方法,其特征在于,还包括:
若所述数据淘汰链表LRU端的各数据记录对应的数据访问时间均不同时,淘汰数据访问时间最早的数据记录。
5.一种缓存系统中数据淘汰装置,其特征在于,包括:
接收单元,用于接收数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
执行单元,用于针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,淘汰所述数据淘汰链表最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
6.如权利要求5所述的装置,其特征在于,还包括:
插入单元,用于针对每一数据记录,在执行单元确定数据淘汰链表不包含该数据记录之前,将该数据记录插入缓存系统中。
7.如权利要求5所述的装置,其特征在于,
所述执行单元,还用于针对每一数据记录,确定数据淘汰链表中包含该数据记录时,根据所述数据访问时间修改该数据记录在所述数据淘汰链表中对应的数据访问时间,并将该数据记录插入所述数据淘汰链表的MRU端。
8.如权利要求1所述的装置,其特征在于,
所述执行单元,还用于若所述数据淘汰链表LRU端的各数据记录对应的数据访问时间均不同时,淘汰数据访问时间最早的数据记录。
9.一种缓存服务器,其特征在于,包括权利要求5~8任一权利要求所述的装置。
10.一种缓存系统中数据淘汰方法,其特征在于,包括:
接收数据查询请求;
根据所述数据查询请求确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;
接收数据库系统返回的数据查询结果集;并
记录数据查询执行时间和数据访问时间;
针对所述数据查询请求返回所述数据查询结果集;以及
向缓存服务器发送数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间。
11.一种缓存系统中数据淘汰装置,其特征在于,包括:
接收单元,用于接收数据查询请求;以及接收数据库系统返回的查询结果集;
查询单元,用于根据所述数据查询请求,确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;
记录单元,用于记录数据查询执行时间和数据访问时间;
返回单元,用于针对所述数据查询请求返回接收到的查询结果信息;
发送单元,用于向缓存服务器发送数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间。
12.一种应用服务器,其特征在于,包括权利要求11所述的装置。
13.一种缓存系统,其特征在于,包括:
客户端设备,用于向应用服务器发送数据查询请求;
应用服务器,用于根据接收到的数据查询请求确定缓存系统中不包含目标数据时,从数据库系统查询目标数据;接收数据库系统返回的数据查询结果集;并记录数据查询执行时间和数据访问时间;向所述客户端设备返回所述数据查询结果集;并向缓存服务器发送数据查询信息,所述数据查询信息包括数据查询结果集、数据查询执行时间和数据访问时间;
缓存服务器,用于针对所述数据查询结果集中包含的每一数据记录,均执行如下操作:确定数据淘汰链表中不包含该数据记录时,淘汰所述数据淘汰链表中最近最少使用LRU端数据访问时间相同且数据查询执行时间最短的数据记录后,将该数据记录插入所述数据淘汰链表的最近最常使用MRU端。
14.如权利要求13所述的系统,其特征在于,
所述缓存服务器,还用于在确定数据淘汰链表不包含该数据记录之前,将该数据记录插入缓存系统中。
15.如权利要求13所述的系统,其特征在于,
所述缓存服务器,还用于确定数据淘汰链表中包含该数据记录时,根据所述数据访问时间修改该数据记录在所述数据淘汰链表中对应的数据访问时间,并将该数据记录插入所述数据淘汰链表的MRU端。
16.如权利要求13所述的系统,其特征在于,
所述缓存服务器,还用于若所述数据淘汰链表LRU端的各数据记录对应的数据访问时间均不同时,淘汰数据访问时间最早的数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741724.7A CN104750715A (zh) | 2013-12-27 | 2013-12-27 | 缓存系统中数据淘汰方法、装置、系统及相关服务器设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310741724.7A CN104750715A (zh) | 2013-12-27 | 2013-12-27 | 缓存系统中数据淘汰方法、装置、系统及相关服务器设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104750715A true CN104750715A (zh) | 2015-07-01 |
Family
ID=53590416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310741724.7A Pending CN104750715A (zh) | 2013-12-27 | 2013-12-27 | 缓存系统中数据淘汰方法、装置、系统及相关服务器设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104750715A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901979A (zh) * | 2014-03-04 | 2015-09-09 | 北京奇虎科技有限公司 | 一种应用程序文件下载方法和装置 |
CN106250327A (zh) * | 2016-08-02 | 2016-12-21 | 华为技术有限公司 | 一种在键‑值存储中热点识别方法及装置 |
CN106599152A (zh) * | 2016-12-07 | 2017-04-26 | 北京华夏电通科技有限公司 | 一种数据缓存方法及系统 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN106991060A (zh) * | 2017-02-27 | 2017-07-28 | 华为技术有限公司 | 一种读cache的淘汰优化方法及装置 |
CN107025240A (zh) * | 2016-02-01 | 2017-08-08 | 国家超级计算深圳中心(深圳云计算中心) | 一种语义网络中本体查询的缓存方法及系统 |
CN107180118A (zh) * | 2017-07-04 | 2017-09-19 | 郑州云海信息技术有限公司 | 一种文件系统缓存数据管理方法及装置 |
CN107247797A (zh) * | 2017-06-26 | 2017-10-13 | 国电南瑞科技股份有限公司 | 基于Redis的电力调度自动化系统中时标量测数据存储系统和方法 |
CN109150929A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 高并发场景下的数据请求处理方法和装置 |
CN109597915A (zh) * | 2018-09-18 | 2019-04-09 | 北京微播视界科技有限公司 | 访问请求处理方法和装置 |
CN110569261A (zh) * | 2019-08-09 | 2019-12-13 | 苏州浪潮智能科技有限公司 | 一种用于更新高速缓存区中所存储的资源的方法和装置 |
CN110825652A (zh) * | 2018-08-09 | 2020-02-21 | 阿里巴巴集团控股有限公司 | 淘汰磁盘块上的缓存数据的方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869979A (zh) * | 2005-12-30 | 2006-11-29 | 华为技术有限公司 | 一种缓存管理方法 |
US20110196880A1 (en) * | 2010-02-11 | 2011-08-11 | Soules Craig A N | Storing update data using a processing pipeline |
CN103139224A (zh) * | 2011-11-22 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种网络文件系统及网络文件系统的访问方法 |
CN104112024A (zh) * | 2014-07-30 | 2014-10-22 | 北京锐安科技有限公司 | 数据库的高性能查询方法和装置 |
CN104636500A (zh) * | 2014-10-21 | 2015-05-20 | 北京国双科技有限公司 | 一种查询热数据的方法及装置 |
-
2013
- 2013-12-27 CN CN201310741724.7A patent/CN104750715A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1869979A (zh) * | 2005-12-30 | 2006-11-29 | 华为技术有限公司 | 一种缓存管理方法 |
US20110196880A1 (en) * | 2010-02-11 | 2011-08-11 | Soules Craig A N | Storing update data using a processing pipeline |
CN103139224A (zh) * | 2011-11-22 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种网络文件系统及网络文件系统的访问方法 |
CN104112024A (zh) * | 2014-07-30 | 2014-10-22 | 北京锐安科技有限公司 | 数据库的高性能查询方法和装置 |
CN104636500A (zh) * | 2014-10-21 | 2015-05-20 | 北京国双科技有限公司 | 一种查询热数据的方法及装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104901979A (zh) * | 2014-03-04 | 2015-09-09 | 北京奇虎科技有限公司 | 一种应用程序文件下载方法和装置 |
CN106657196A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN106657196B (zh) * | 2015-11-02 | 2020-07-24 | 华为技术有限公司 | 一种缓存内容淘汰方法及缓存装置 |
CN107025240A (zh) * | 2016-02-01 | 2017-08-08 | 国家超级计算深圳中心(深圳云计算中心) | 一种语义网络中本体查询的缓存方法及系统 |
CN106250327B (zh) * | 2016-08-02 | 2019-04-19 | 华为技术有限公司 | 一种在键-值存储中热点识别方法及装置 |
CN106250327A (zh) * | 2016-08-02 | 2016-12-21 | 华为技术有限公司 | 一种在键‑值存储中热点识别方法及装置 |
CN106599152A (zh) * | 2016-12-07 | 2017-04-26 | 北京华夏电通科技有限公司 | 一种数据缓存方法及系统 |
CN106991060A (zh) * | 2017-02-27 | 2017-07-28 | 华为技术有限公司 | 一种读cache的淘汰优化方法及装置 |
CN106991060B (zh) * | 2017-02-27 | 2020-04-14 | 华为技术有限公司 | 一种读cache的淘汰优化方法及装置 |
CN109150929A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 高并发场景下的数据请求处理方法和装置 |
CN109150929B (zh) * | 2017-06-15 | 2021-11-12 | 北京京东尚科信息技术有限公司 | 高并发场景下的数据请求处理方法和装置 |
CN107247797A (zh) * | 2017-06-26 | 2017-10-13 | 国电南瑞科技股份有限公司 | 基于Redis的电力调度自动化系统中时标量测数据存储系统和方法 |
CN107180118A (zh) * | 2017-07-04 | 2017-09-19 | 郑州云海信息技术有限公司 | 一种文件系统缓存数据管理方法及装置 |
CN110825652A (zh) * | 2018-08-09 | 2020-02-21 | 阿里巴巴集团控股有限公司 | 淘汰磁盘块上的缓存数据的方法、装置及设备 |
CN110825652B (zh) * | 2018-08-09 | 2023-06-13 | 阿里巴巴集团控股有限公司 | 淘汰磁盘块上的缓存数据的方法、装置及设备 |
CN109597915A (zh) * | 2018-09-18 | 2019-04-09 | 北京微播视界科技有限公司 | 访问请求处理方法和装置 |
CN109597915B (zh) * | 2018-09-18 | 2022-03-01 | 北京微播视界科技有限公司 | 访问请求处理方法和装置 |
CN110569261A (zh) * | 2019-08-09 | 2019-12-13 | 苏州浪潮智能科技有限公司 | 一种用于更新高速缓存区中所存储的资源的方法和装置 |
CN110569261B (zh) * | 2019-08-09 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种用于更新高速缓存区中所存储的资源的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750715A (zh) | 缓存系统中数据淘汰方法、装置、系统及相关服务器设备 | |
CN108319654B (zh) | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 | |
CN109240946A (zh) | 数据的多级缓存方法及终端设备 | |
TWI696922B (zh) | 目標位置搜尋方法和裝置 | |
CN102780603B (zh) | 网站流量控制方法及装置 | |
CN103747072A (zh) | 一种读写数据的方法和应用服务器 | |
US10296497B2 (en) | Storing a key value to a deleted row based on key range density | |
CN104331428A (zh) | 一种小文件和大文件的存储及访问方法 | |
CN109240607B (zh) | 一种文件读取方法和装置 | |
CN103491152A (zh) | 分布式文件系统中元数据获取方法、装置及系统 | |
US11507277B2 (en) | Key value store using progress verification | |
CN109002503A (zh) | 一种元数据读取方法、装置、设备及可读存储介质 | |
CN114138840A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN110647542B (zh) | 一种数据获取方法和装置 | |
CN109213691B (zh) | 用于缓存管理的方法和设备 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
US8396858B2 (en) | Adding entries to an index based on use of the index | |
JP5272428B2 (ja) | アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム | |
CN110069565B (zh) | 一种分布式数据库数据批量处理的方法及装置 | |
CN101459599B (zh) | 一种实现缓存数据访问与加载并发进行的方法及系统 | |
CN115934583A (zh) | 分级缓存方法、装置及系统 | |
CN102004800A (zh) | Pdm系统中数据的查询方法及装置 | |
CN114064729A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
CN113157629A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN107679093B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150701 |
|
RJ01 | Rejection of invention patent application after publication |