CN105335512B - 数据查询方法及装置 - Google Patents
数据查询方法及装置 Download PDFInfo
- Publication number
- CN105335512B CN105335512B CN201510727298.0A CN201510727298A CN105335512B CN 105335512 B CN105335512 B CN 105335512B CN 201510727298 A CN201510727298 A CN 201510727298A CN 105335512 B CN105335512 B CN 105335512B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- target data
- master
- database
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开是关于一种数据查询的方法及装置,属于网络数据处理技术领域。方法包括:当接收到用户终端发送的服务请求,且主缓存器中不存在服务请求对应的目标数据时,向数据库读取目标数据;若向数据库读取目标数据失败,则查询副缓存器中是否存储有目标数据;若副缓存器中存在目标数据,则根据副缓存器存储的目标数据处理服务请求。本公开解决了当数据库或者网络故障导致服务器无法对缓存器中的数据进行及时更新而导致存器中的数据失效时,服务器只能向用户返回服务失败的响应,从而影响服务效果和用户体验的问题,实现了延长数据的有效时长,充分提高了服务器的可用性的效果。
Description
技术领域
本公开涉及网络数据处理领域,特别涉及一种数据查询方法及装置。
背景技术
服务器在接收到一个服务请求时,通常需要查询服务请求对应的目标数据,并根据目标数据对服务请求进行处理,其中,查询目标数据的速度是影响服务响应时间的重要因素。
服务器要查询的数据一般存储在非易失性的数据库中。由于数据库的读写性能有限,为了提高查询速度,在服务器中还设置有一个读写性能较高的缓存器,用来缓存数据库中的数据,在查询目标数据时,服务器可以直接从缓存器中进行查询。由于数据库中的数据在不断的更新,为了保证服务的准确性,缓存器中的数据还设置有效时限,缓存时间到达该有效时限的数据将会失效,同时,服务器会根据数据库中的最新数据对缓存器中的数据进行更新,若因为数据库或者网络故障导致服务器无法对缓存器中的数据进行及时更新,则当缓存器中的数据失效后,服务器只能向用户返回服务失败的响应,从而影响服务效果和用户体验。
发明内容
本公开实施例提供了一种数据查询方法及装置,所述技术方案如下:
根据本公开实施例的第一方面,提供了一种数据查询方法,该方法包括:
当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据;
若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据;
若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求;
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
可选地,该方法还包括:若该副缓存器中存在有该目标数据,则将该副缓存器存储的该目标数据复制到该主缓存器。
可选地,该方法还包括:将该副缓存器存储的该目标数据复制到该主缓存器之后,重置该副缓存器中的该目标数据的缓存时间,该副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2。
可选地,该方法还包括:若向该数据库读取该目标数据成功,则将从该数据库中读取到的该目标数据存储至该主缓存器和该副缓存器;
根据从该数据库中读取到的该目标数据处理该服务请求。
可选地,该方法还包括:当该主缓存器中的已有数据在缓存时间到达更新时限T3时,向该数据库读取与该已有数据相对应的新数据,T1>T3>0;
若读取该新数据成功,则将该主缓存器和该副缓存器中各自存储的该已有数据更新为该新数据。
可选地,该方法还包括:若该副缓存器中不存在该目标数据,则向该用户终端返回服务失败响应。
根据本公开实施例的第二方面,提供了一种数据查询装置,该装置包括:
第一读取模块,被配置为用于当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据;
查询模块,被配置为用于若该第一读取模块向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据;
处理模块,被配置为用于若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求;
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
可选地,该装置还包括:复制模块,被配置为于若该副缓存器中存在有该目标数据,则将该副缓存器存储的该目标数据复制到该主缓存器。
可选地,该装置还包括:重置模块,被配置为用于在该复制模块将该副缓存器存储的该目标数据复制到该主缓存器之后,重置该副缓存器中的该目标数据的缓存时间,该副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2。
可选地,该装置还包括:存储模块,被配置为用于若该第一读取模块向该数据库读取该目标数据成功,则将从该数据库中读取到的该目标数据存储至该主缓存器和该副缓存器;
该处理模块,被配置为用于根据该读取模块从该数据库中读取到的该目标数据处理该服务请求。
可选地,该装置还包括:第二读取模块,还被配置为用于当该主缓存器中的已有数据在缓存时间到达更新时限T3时,向该数据库读取与该已有数据相对应的新数据,T1>T3>0;
更新模块,被配置为用于若该第二读取模块读取该新数据成功,则将该主缓存器和该副缓存器中各自存储的该已有数据更新为该新数据。
可选地,该装置还包括:响应模块,被配置为用于若该副缓存器中不存在该目标数据,则向该用户终端返回服务失败响应。
根据本公开实施例的第三方面,提供了一种数据查询装置,该装置用于包含主缓存器和副缓存器的服务器中,该装置包括:
处理器;
用于存储该处理器的可执行指令的存储器;
其中,该处理器被配置为:
当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据;
若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据;
若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求;
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
本公开实施例提供的技术方案可以包括以下有益效果:
通过当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据;若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据;若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求;其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份,解决了相关技术中,当数据库或者网络故障导致服务器无法对缓存器中的数据进行及时更新而导致存器中的数据失效时,服务器只能向用户返回服务失败的响应,从而影响服务效果和用户体验的问题,实现了延长数据的有效时长,充分提高了服务器的可用性的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种数据查询方法所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种数据查询方法的流程图;
图3是根据另一示例性实施例示出的一种数据查询方法的流程图;
图4是根据再一示例性实施例示出的一种数据查询方法的流程图;
图5是根据一示例性实施例示出的一种数据查询装置的框图;
图6是根据另一示例性实施例示出的一种数据查询装置的框图;
图7是根据一示例性实施例示出的一种装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据本公开所示出的数据查询方法所涉及的实施环境的示意图。该实施环境可以包括:服务器101、终端设备102以及数据库103。
服务器101包含主缓存器(主Cache)和副缓存(副Cache)器,可以通过有线或者无线网络与终端设备102和数据库103相连。
用户终端102可以是诸如手机、个人电脑、平板电脑、膝上型便携计算机、多媒体播放设备和可穿戴设备等。
数据库103可以单独位于一个数据库服务器中,也可以是集成于服务器101中,作为服务器101的一部分。除此之外,数据库103还可以软件的形式存在于工作站型计算机、工程机或个人电脑等可运行数据库的设备中。数据库103中的数据可以存储在非易失性存储设备中。
下面,以图1所示的实施环境为例,对本公开各个实施例提供的技术方案进行介绍和说明。
图2是根据一示例性实施例示出的一种数据查询方法的流程图,该方法可以应用于如图1所示实施环境的服务器101中。该数据查询方法可以包括如下几个步骤:
在步骤201中,当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据。
在步骤202中,若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据。
在步骤203中,若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求。
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
综上所述,本公开实施例提供的数据查询方法,通过当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据;若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据;若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求;其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份,解决了相关技术中,当数据库或者网络故障导致服务器无法对缓存器中的数据进行及时更新而导致存器中的数据失效时,服务器只能向用户返回服务失败的响应,从而影响服务效果和用户体验的问题,实现了延长数据的有效时长,充分提高了服务器的可用性的效果。
图3是根据另一示例性实施例示出的一种查询数据的方法的流程图。以该方法应用于图1所示实施环境的服务器101中为例进行说明,请参考图3,该方法可以包括如下几个步骤:
在步骤301中,当服务器接收到用户终端发送的服务请求,且主缓存器中不存在服务请求对应的目标数据时,向数据库读取该目标数据。
其中,主缓存器中的数据在缓存时间到达第一有效时限T1时失效。
缓存器,又称为缓冲存储器或者高速缓冲存储器,是为了解决中央处理器和主存之间速度不匹配而采用的一项重要技术,其存取速度比主存快,能够高速地向中央处理器提供指令和数据,从而加快了程序的执行速度,通常可以是SRAM(Static Random AccessMemory,静态随机存取存储器)或者DRAM(Dynamic Random Access Memory,动态随机存取存储器),为追求高速,包括管理在内的全部功能可以均由硬件实现。
服务器的架构为多线程高并发架构形式,用于处理大量并发服务请求。例如,该服务器可以是存在大量并发服务请求的Web Service(网络服务)服务器。
上述第一有效时限T1可以是服务器开发者设定的,用于确定主缓存器中的数据的有效时间。例如,服务器开发者将第一有效时限T1设置为10秒,则从目标数据缓存至主缓存器中开始计时的10秒之内,目标数据可以被服务器直接查询;10秒之后,目标数据在主缓存器中失效,主缓存器中失效的目标数据将被删除,同时,服务器会从数据库中读取该目标数据对应的最新数据并对失效的目标数据进行更新。
在步骤302中,服务器判断向数据库读取目标数据是否成功,若是,进入步骤303,否则,进入步骤305。
在实际使用过程中,可能因为数据库或者服务器与数据库之间的网络出现故障而导致服务器向数据库读取目标数据失败的情形。
在步骤303中,服务器将从数据库中读取到的该目标数据存储至主缓存器和副缓存器。
其中,副缓存器中的数据是主缓存器中的数据在发生新增或者更新时的备份。副缓存器中数据的变化,根据主缓存器中数据进行新增或者更新,分为两种不同的变化情形:
一、在主缓存器的数据发生新增时,副缓存器中的数据随之发生新增。
这种新增数据的情况,是服务器在主缓存器中的没有查询到目标数据时,在数据库中查询到了目标数据。此时,服务器将查询到的目标数据新增到主缓存器和副缓存器中。
二、在主缓存器的数据发生更新时,副缓存器中的数据随之发生更新。
这种更新数据的情况,是主缓存器中的目标数据失效时触发的。在主缓存器中的目标数据失效时,服务器会从数据库中读取新的目标数据,并将旧的目标数据更新为新的目标数据,与此同时,副缓存器中存储的旧的目标数据也会更新为该新的目标数据。
其中,服务器将目标数据新增或者更新到主缓存器中和副缓存器当中的顺序,可以是服务器先将目标数据新增或更新到副缓存器中,之后副缓存器再将目标数据新增或更新到主缓存器中。
或者,服务器也可以现将新增或者更新的目标数据存储到主缓存器,再从主缓存器同步至副缓存器。再或者,服务器也可以将目标数据同时新增或者更新到主缓存器和副缓存器。上本公开对主缓存器和副缓存器中目标数据变化的顺序不做限定。
在步骤304中,服务器根据从数据库中读取到的目标数据处理服务请求。
其中,服务器处理服务请求的处理方式可以是将读取到的目标数据作为查询结果,发送给服务请求的发起者(用户终端)。
另外,服务器处理服务请求的处理方式还可以是,根据服务请求对目标数据进行例如运算、排序或统计等操作,之后,再将处理结果发送给服务请求的发起者。
在步骤305中,服务器判断副缓存器中是否存储有目标数据,若是,进入步骤306,否则,进入步骤308。
在步骤306中,服务器根据副缓存器存储的目标数据处理服务请求,并将副缓存器存储的目标数据复制到主缓存器。
步骤306中的处理方式同步骤304中的方式相同,此处不再展开叙述。
将副缓存器存储的目标数据复制到主缓存器之后,复制到主缓存器中的该目标数据重新开始计算存储时间,当其缓存时间再次到达T2时,主缓存器中的该目标数据将再次被删除。
在步骤307中,服务器重置副缓存器中的目标数据的缓存时间。
其中,副缓存器中的目标数据在缓存时间到达第二有效时限T2时失效,0<T1<T2。
其中,副缓存器中目标数据的缓存时间可根据不同的应用场景进行预先设置。对于第二有效时限T2存在一个下限的要求,即,0<T1<T2。副缓存器中的目标数据的有效时间需要长于主缓存器中的有效时长。
在重置副缓存器中的目标数据的缓存时间时,可以是将副缓存器中的目标数据的缓存时间重置为0。例如,副缓存器中的数据的有效时限为15秒,若服务器在副缓存器中的目标数据的缓存时长到达15秒之前下达重置副缓存器中的目标数据的缓存时间的命令,则副缓存器中的目标数据的缓存时间被重置为0秒,若服务器在副缓存器中的目标数据的缓存时长到达15秒仍未下达重置副缓存器中的目标数据的缓存时间的命令,则副缓存器中的目标数据将会失效并被删除。
本公开实施例中,仅以主缓存器中的数据的有效时限为10s,副缓存器中的有效时限为15s为例进行说明,在实际应用中,主缓存器中的数据的有效时限可以由开发人员根据对应的服务类型自行设置,比如,对数据时效性敏感的服务,其对应的数据可以设置一个较短的有效时限,对数据时效性不太敏感的服务,则可以设置一个较长的有效时限。副缓存器中的数据的有效时限也同理设置,不同的,副缓存器中的数据的有效时限必须长于主缓存器中的数据的有效时限,在某些情况下,也可以不对副缓存器中的数据设置有效时限,即一个数据被存储到副缓存器中之后,其会一直有效,直至被新的数据所更新。
在步骤308中,服务器向用户终端返回服务失败响应。
综上所述,本公开实施例提供的数据查询方法,在服务器中设置两级缓存器,一个主缓存器和一个副缓存器,数据库中的数据第一次被服务器读取后,将会同时存储在主缓存器和副缓存器中,两个缓存器中的数据都设置有有效时限,且主缓存器中的数据有效期限比和副缓存器中的数据的有效期限短。当数据库发生故障,且主缓存器中的目标数据到期失效时,服务器可以向副缓存器读取目标数据,若副缓存器中的目标数据还未到期,则可以根据副缓存器中的目标数据进行后续处理,这样可以在数据库发生故障时,可以暂时先根据一个不是最新但是尽可能新的数据处理服务请求,从而提高服务器的可用性。
在上述图3所示的实施例中,主缓存器中的数据在失效时间到达时才会进行更新,即主缓存器中的已有数据的更新时限T3=T1,在实际应用中,该主缓存器中的数据也可以在失效时间到达之前就可以进行更新,请参考图4,其是根据又一示例性实施例示出的一种数据更新的方法的流程图,该方法可以包括如下几个步骤:
在步骤401中,当主缓存器中的已有数据在缓存时间到达更新时限T3时,服务器向数据库读取与已有数据相对应的新数据,T1>T3>0。
其中,已有数据为主缓存器中已经存在的数据,并且,该已有数据处于可以响应服务请求的状态。当该已有数据在缓存时间到达更新时限T3时,服务器向数据库读取与已有数据相对应的新数据,并且更新时限T3不大于第一有效时限T1。
在步骤402中,若读取该新数据成功,则服务器将主缓存器和副缓存器中各自存储的已有数据更新为新数据。
其中,主缓存器和副缓存器更新数据的过程可以参考上述图3对应实施例的步骤304中的叙述,此处不再展开论述。
若读取该新数据失败,则等待主缓存器中的已有数据的缓存时间到达有效时限T1时,主缓存器将该已有数据删除。
需要说明的是,本公开实施例所示的方法以图3所示的实施例为基础,即本公开实施例中的服务器同时可以执行图3所示实施例中的数据查询方法。
综上所述,本公开实施例提供的数据查询方法,当主缓存器中的已有数据在缓存时间到达更新时限T3时,服务器就对该已有数据进行更新,不需要等待该已有数据到达缓存时限再进行更新,进一步提高了主缓存中的已有数据的有效性,从而提高服务的准确性。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图5是根据一示例性实施例示出的一种数据查询的框图,该数据查询装置可以通过硬件电路或者软件和硬件的结合实现成为数据查询装置的部分或者全部。该数据查询装置可以包括:
第一读取模块501,被配置为用于当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据。
查询模块502,被配置为用于若该第一读取模块向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据。
处理模块503,被配置为用于若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求。
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
综上所述,本公开实施例提供的数据查询装置,通过当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据;若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据;若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求;其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份,解决了相关技术中,当数据库或者网络故障导致服务器无法对缓存器中的数据进行及时更新而导致存器中的数据失效时,服务器只能向用户返回服务失败的响应,从而影响服务效果和用户体验的问题,实现了延长数据的有效时长,充分提高了服务器的可用性的效果。
图6是根据一示例性实施例示出的一种数据查询的框图,该数据查询装置可以通过硬件电路或者软件和硬件的结合实现成为数据查询装置的部分或者全部。该数据查询装置可以包括:
第一读取模块501,被配置为用于当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据。
查询模块502,被配置为用于若该第一读取模块501向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据。
处理模块503,被配置为用于若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求。
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
复制模块504,被配置为用于若该副缓存器中存在有该目标数据,则将该副缓存器存储的该目标数据复制到该主缓存器。
重置模块505,被配置为用于在该复制模块504将该副缓存器存储的该目标数据复制到该主缓存器之后,重置该副缓存器中的该目标数据的缓存时间,该副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2。
存储模块506,被配置为用于若该第一读取模块501向该数据库读取该目标数据成功,则将从该数据库中读取到的该目标数据存储至该主缓存器和该副缓存器。
该处理模块503,被配置为用于根据该第一读取模块501从该数据库中读取到的该目标数据处理该服务请求。
第二读取模块507,被配置为用于当该主缓存器中的已有数据在缓存时间到达更新时限T3时,向该数据库读取与该已有数据相对应的新数据,T1>T3>0。
更新模块508,被配置为用于若该第二读取模块507读取该新数据成功,则将该主缓存器和该副缓存器中各自存储的该已有数据更新为该新数据。
响应模块509,被配置为用于若该副缓存器中不存在该目标数据,则向该用户终端返回服务失败响应。
综上所述,本公开实施例提供的数据查询装置,在服务器中设置两级缓存器,一个主缓存器和一个副缓存器,数据库中的数据第一次被服务器读取后,将会同时存储在主缓存器和副缓存器中,两个缓存器中的数据都设置有有效时限,且主缓存器中的数据有效期限比和副缓存器中的数据的有效期限短。当数据库发生故障,且主缓存器中的目标数据到期失效时,服务器可以向副缓存器读取目标数据,若副缓存器中的目标数据还未到期,则可以根据副缓存器中的目标数据进行后续处理,这样可以在数据库发生故障时,可以暂时先根据一个不是最新但是尽可能新的数据处理服务请求,从而提高服务器的可用性。
另外,本公开实施例提供的数据查询装置,当主缓存器中的已有数据在缓存时间到达更新时限T3时,服务器就对该已有数据进行更新,不需要等待该已有数据到达缓存时限再进行更新,进一步提高了主缓存中的已有数据的有效性,从而提高服务的准确性。
本公开一示例性实施例还提供了一种数据查询的装置,能够实现本公开提供的数据查询的方法。该装置包括:处理器,以及用于存储处理器的可执行指令的存储器。其中,处理器被配置为:
当接收到用户终端发送的服务请求,且该主缓存器中不存在该服务请求对应的目标数据时,向数据库读取该目标数据。
若向该数据库读取该目标数据失败,则查询该副缓存器中是否存储有该目标数据。
若该副缓存器中存在该目标数据,则根据该副缓存器存储的该目标数据处理该服务请求。
其中,该主缓存器中的数据在缓存时间到达第一有效时限T1时失效,且该副缓存器中的数据是该主缓存器中的数据在发生新增或者更新时的备份。
可选地,处理器还被配置为:若该副缓存器中存在有该目标数据,则将该副缓存器存储的该目标数据复制到该主缓存器。
可选地,处理器还被配置为:
将该副缓存器存储的该目标数据复制到该主缓存器之后,重置该副缓存器中的该目标数据的缓存时间,该副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2。
可选地,处理器还被配置为:
若向该数据库读取该目标数据成功,则将从该数据库中读取到的该目标数据存储至该主缓存器和该副缓存器。
根据从该数据库中读取到的该目标数据处理该服务请求。
可选地,处理器还被配置为:
当该主缓存器中的已有数据在缓存时间到达更新时限T3时,向该数据库读取与该已有数据相对应的新数据,T1>T3>0。
若读取该新数据成功,则将该主缓存器和该副缓存器中各自存储的该已有数据更新为该新数据。
可选地,处理器还被配置为:
若该副缓存器中不存在该目标数据,则向该用户终端返回服务失败响应。
综上所述,本公开实施例提供的数据查询装置,当主缓存器中的已有数据在缓存时间到达更新时限T3时,服务器就对该已有数据进行更新,不需要等待该已有数据到达缓存时限再进行更新,进一步提高了主缓存中的已有数据的有效性,从而提高服务的准确性。
需要说明的一点是,上述实施例提供的装置在执行数据查询方法时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种装置700的框图。例如,装置700可以被提供为一服务器。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理部件722执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述图2、3或者4所示的方法。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (7)
1.一种数据查询方法,其特征在于,用于包含主缓存器和副缓存器的服务器中,所述方法包括:
当接收到用户终端发送的服务请求,且所述主缓存器中不存在所述服务请求对应的目标数据时,向数据库读取所述目标数据;
若向所述数据库读取所述目标数据失败,则查询所述副缓存器中是否存储有所述目标数据;
若所述副缓存器中存在所述目标数据,则根据所述副缓存器存储的所述目标数据处理所述服务请求,并将所述副缓存器存储的所述目标数据复制到所述主缓存器,所述主缓存器中的数据在缓存时间到达第一有效时限T1时失效;
将所述副缓存器存储的所述目标数据复制到所述主缓存器之后,重置所述副缓存器中的所述目标数据的缓存时间,所述副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2,所述副缓存器中的数据是所述主缓存器中的数据在发生新增或者更新时的备份;
当所述主缓存器中的已有数据在缓存时间到达更新时限T3时,向所述数据库读取与所述已有数据相对应的新数据,T1>T3>0;
若读取所述新数据成功,则将所述主缓存器和所述副缓存器中各自存储的所述已有数据更新为所述新数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若向所述数据库读取所述目标数据成功,则将从所述数据库中读取到的所述目标数据存储至所述主缓存器和所述副缓存器;
根据从所述数据库中读取到的所述目标数据处理所述服务请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述副缓存器中不存在所述目标数据,则向所述用户终端返回服务失败响应。
4.一种数据查询装置,其特征在于,用于包含主缓存器和副缓存器的服务器中,所述装置包括:
第一读取模块,用于当接收到用户终端发送的服务请求,且所述主缓存器中不存在所述服务请求对应的目标数据时,向数据库读取所述目标数据;
查询模块,用于若所述第一读取模块向所述数据库读取所述目标数据失败,则查询所述副缓存器中是否存储有所述目标数据;
处理模块,用于若所述副缓存器中存在所述目标数据,则根据所述副缓存器存储的所述目标数据处理所述服务请求;
复制模块,用于若所述副缓存器中存在有所述目标数据,则将所述副缓存器存储的所述目标数据复制到所述主缓存器,所述主缓存器中的数据在缓存时间到达第一有效时限T1时失效;
重置模块,用于在所述复制模块将所述副缓存器存储的所述目标数据复制到所述主缓存器之后,重置所述副缓存器中的所述目标数据的缓存时间,所述副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2,所述副缓存器中的数据是所述主缓存器中的数据在发生新增或者更新时的备份;
第二读取模块,还用于当所述主缓存器中的已有数据在缓存时间到达更新时限T3时,向所述数据库读取与所述已有数据相对应的新数据,T1>T3>0;
更新模块,用于若所述第二读取模块读取所述新数据成功,则将所述主缓存器和所述副缓存器中各自存储的所述已有数据更新为所述新数据。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
存储模块,用于若所述第一读取模块向所述数据库读取所述目标数据成功,则将从所述数据库中读取到的所述目标数据存储至所述主缓存器和所述副缓存器;
所述处理模块,用于根据所述读取模块从所述数据库中读取到的所述目标数据处理所述服务请求。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
响应模块,用于若所述副缓存器中不存在所述目标数据,则向所述用户终端返回服务失败响应。
7.一种数据查询装置,其特征在于,用于包含主缓存器和副缓存器的服务器中,所述装置包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
当接收到用户终端发送的服务请求,且所述主缓存器中不存在所述服务请求对应的目标数据时,向数据库读取所述目标数据;
若向所述数据库读取所述目标数据失败,则查询所述副缓存器中是否存储有所述目标数据;
若所述副缓存器中存在所述目标数据,则根据所述副缓存器存储的所述目标数据处理所述服务请求,并将所述副缓存器存储的所述目标数据复制到所述主缓存器,所述主缓存器中的数据在缓存时间到达第一有效时限T1时失效;
将所述副缓存器存储的所述目标数据复制到所述主缓存器之后,重置所述副缓存器中的所述目标数据的缓存时间,所述副缓存器中的数据在缓存时间到达第二有效时限T2时失效,0<T1<T2,所述副缓存器中的数据是所述主缓存器中的数据在发生新增或者更新时的备份;
当所述主缓存器中的已有数据在缓存时间到达更新时限T3时,向所述数据库读取与所述已有数据相对应的新数据,T1>T3>0;
若读取所述新数据成功,则将所述主缓存器和所述副缓存器中各自存储的所述已有数据更新为所述新数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510727298.0A CN105335512B (zh) | 2015-10-30 | 2015-10-30 | 数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510727298.0A CN105335512B (zh) | 2015-10-30 | 2015-10-30 | 数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335512A CN105335512A (zh) | 2016-02-17 |
CN105335512B true CN105335512B (zh) | 2019-09-17 |
Family
ID=55286039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510727298.0A Active CN105335512B (zh) | 2015-10-30 | 2015-10-30 | 数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335512B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291756A (zh) * | 2016-04-01 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 数据缓存的方法及装置 |
CN109714443A (zh) * | 2017-10-25 | 2019-05-03 | 中国电信股份有限公司 | 域名服务器、域名备份方法和计算机可读存储介质 |
CN110297673B (zh) * | 2019-06-20 | 2022-04-12 | 福建天泉教育科技有限公司 | 内存数据优化加载的方法、存储介质 |
CN110837521A (zh) * | 2019-11-15 | 2020-02-25 | 北京金山云网络技术有限公司 | 数据查询方法、装置和服务器 |
CN111177028B (zh) * | 2019-12-27 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种动态多级缓存的方法和设备 |
CN111708288B (zh) * | 2020-05-18 | 2021-11-26 | 慧灵科技(深圳)有限公司 | 数据处理的方法、装置、电子设备及存储介质 |
CN113556349A (zh) * | 2021-07-23 | 2021-10-26 | 海信集团控股股份有限公司 | 一种网关认证方法及装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779132A (zh) * | 2011-05-12 | 2012-11-14 | 阿里巴巴集团控股有限公司 | 数据更新方法、系统及数据库服务器 |
CN103207841A (zh) * | 2013-03-06 | 2013-07-17 | 青岛海信传媒网络技术有限公司 | 基于键值对缓存的数据读写方法及装置 |
CN103377100A (zh) * | 2012-04-26 | 2013-10-30 | 华为技术有限公司 | 一种数据备份方法、网络节点及系统 |
CN104866434A (zh) * | 2015-06-01 | 2015-08-26 | 北京圆通慧达管理软件开发有限公司 | 面向多应用的数据存储系统和数据存储、调用方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521085B (zh) * | 2011-12-30 | 2015-05-20 | 百视通网络电视技术发展有限责任公司 | 基于iptv的媒资数据的备份及还原方法和系统 |
-
2015
- 2015-10-30 CN CN201510727298.0A patent/CN105335512B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779132A (zh) * | 2011-05-12 | 2012-11-14 | 阿里巴巴集团控股有限公司 | 数据更新方法、系统及数据库服务器 |
CN103377100A (zh) * | 2012-04-26 | 2013-10-30 | 华为技术有限公司 | 一种数据备份方法、网络节点及系统 |
CN103207841A (zh) * | 2013-03-06 | 2013-07-17 | 青岛海信传媒网络技术有限公司 | 基于键值对缓存的数据读写方法及装置 |
CN104866434A (zh) * | 2015-06-01 | 2015-08-26 | 北京圆通慧达管理软件开发有限公司 | 面向多应用的数据存储系统和数据存储、调用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105335512A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335512B (zh) | 数据查询方法及装置 | |
US11487698B2 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
JP5191062B2 (ja) | ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム | |
US10506043B2 (en) | Rapid client-side component processing based on component relationships | |
Srinivasan et al. | Aerospike: Architecture of a real-time operational dbms | |
CN110069346B (zh) | 多进程间资源共享方法、装置、电子设备 | |
US10970311B2 (en) | Scalable snapshot isolation on non-transactional NoSQL | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
US20140172790A1 (en) | Synchronization of Metadata in a Multi-Threaded System | |
JP2016508349A (ja) | クラスタ境界にわたるサービス移行 | |
US11487674B2 (en) | Virtual memory pool within a network which is accessible from multiple platforms | |
CN113609167B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN107025257B (zh) | 一种事务处理方法及装置 | |
CN109254981A (zh) | 一种分布式缓存系统的数据管理方法和装置 | |
US11741081B2 (en) | Method and system for data handling | |
Pfandzelter et al. | Enoki: Stateful distributed faas from edge to cloud | |
CN104572483B (zh) | 动态内存管理装置及方法 | |
US11138231B2 (en) | Method and system for data handling | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
JP6677605B2 (ja) | プログラム、ストレージシステム、およびストレージシステムの制御方法 | |
CN109376001A (zh) | 一种资源分配的方法及设备 | |
CN115033350A (zh) | 一种分布式事务的执行方法及装置 | |
CN110543351A (zh) | 数据处理方法以及计算机设备 | |
EP3686751A1 (en) | Method and system for data handling | |
CN109783191B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |