CN109240613A - 数据缓存方法、装置、计算机设备及存储介质 - Google Patents
数据缓存方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109240613A CN109240613A CN201810997275.5A CN201810997275A CN109240613A CN 109240613 A CN109240613 A CN 109240613A CN 201810997275 A CN201810997275 A CN 201810997275A CN 109240613 A CN109240613 A CN 109240613A
- Authority
- CN
- China
- Prior art keywords
- cache
- caching
- cache object
- target
- data
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据缓存方法、装置、计算机设备及存储介质。所述方法包括:检测到应用程序启动,初始化缓存组件,缓存组件包括缓存管理器和缓存供给器;实例化缓存供给器中的缓存对象,并将实例化后的缓存对象保存至缓存管理器;若接收到获取目标数据的请求,根据请求中的缓存对象名称查找是否存在目标缓存对象;若存在目标缓存对象,判断目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若未超过所对应的缓存生命周期,读取缓存管理器中目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。本申请实施例节省了访问数据库或者第三方***等的资源,减少了获取数据的时间,提高了获取数据的效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据缓存方法、装置、计算机设备及存储介质。
背景技术
在业务***中有非常多的配置数据(预先配置的数据),是存放在关系型数据库或者第三方***中,这种配置数据变化的几率非常低,可以说是一种静态化的数据,如省、市、县等数据。当业务需求中需要该配置数据时,若每次都到数据库或者第三方***中进行查询,会浪费第三方***以及数据库的资源。如与数据库建立连接的资源,在数据库中进行查询时需要的资源等。尤其是在非大量数据量缓存的业务***内,采用NoSQL(Not Only SQL)技术时,在进行配置数据的查询时会增加服务器的复杂度及维护成本。
发明内容
本申请实施例提供一种数据缓存方法、装置、计算机设备及存储介质,可节省访问数据库或者第三方***的资源,减少获取数据的时间,提高获取数据的效率。
第一方面,本申请实施例提供了一种数据缓存方法,该方法包括:
检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;实例化所述缓存供给器中的缓存对象,其中,所述缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;将实例化后的缓存对象保存至所述缓存管理器中;若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。
第二方面,本申请实施例提供了一种数据缓存装置,该装置包括用于执行上述第一方面所述的方法对应的单元。
第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器,以及与所述存储器相连的处理器;
所述存储器用于存储计算机程序,所述处理器用于运行所述存储器中存储的计算机程序,以执行上述第一方面所述的方法。
第四方面,本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的方法。
本申请实施例通过将缓存对象保存在缓存管理器中,当下次访问该缓存对象时,若缓存对象未过期,直接从缓存管理器中获取该缓存对象所对应的缓存数据,如此节省了访问数据库或者第三方***等的资源,减少了获取数据的时间,提高了获取数据的效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据缓存方法的应用场景示意图;
图2是本申请实施例提供的数据缓存方法的流程示意图;
图3是本申请实施例提供的缓存组件的结构示意图;
图4是本申请实施例提供的数据缓存方法的子流程示意图;
图5是本申请另一实施例提供的数据缓存方法的流程示意图;
图6是本申请实施例提供的数据缓存装置的示意性框图;
图7是本申请实施例提供的实例化单元的示意性框图;
图8是本申请另一实施例提供的数据缓存装置的示意性框图。
图9是本申请实施例提供的一种计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例提供的数据缓存方法的应用场景示意图。如图1所示的应用场景中,包括终端和服务器端。服务器端包括应用程序,应用程序中有预设的缓存组件,缓存组件中存储有一些缓存数据,如配置数据等。需要注意的是,配置数据只是其中的一种数据,缓存组件中还存储有一些与配置数据类似的其他静态数据等。以下为了描述的方便,将这些数据都统称为目标数据。需要注意的是,服务器端的应用程序可以是各类的应用程序,包括***、安卓应用程序、html5小程序、exe程序等。其中,数据缓存方法应用于服务器端,该服务器端可以集成本申请实施例中的任意数据缓存装置。该终端可以为台式电脑、平板电脑、个人数字助理(PDA)、智能手机等可以与服务器端的应用程序互相通信的设备,在此不做具体限制。在图1中,终端和服务器均为一个,可以理解地,在实际应用过程中,终端和服务器均可以有更多个。
在图1中,终端向服务器端发送获取目标数据的请求,该请求中包括缓存对象名称,服务器端接收到终端的请求后,根据缓存对象名称返回目标数据。
下面将结合说明书附图对本申请中应用于服务器端的数据缓存方法做详细地介绍。
图2是本申请实施例提供的数据缓存方法的流程示意图。如图2所示,该方法包括S201-S209。
S201,检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器。
其中,预设的缓存组件用于管理所有的在缓存组件中的对象。缓存组件中定义了缓存父类的所有方法和所有属性,其中,缓存父类可根据用户的需求自行定义,缓存父类中包括了缓存数据的属性和实现缓存的方法,以实现数据缓存所涉及的功能。缓存供给器定义了缓存子类,在本实施例中,缓存供给器中的缓存子类继承了缓存父类的方法和属性,可以对缓存数据进行处理。缓存供给器可以由各开发人员自己定义,主要实现缓存数据的加载逻辑,将缓存数据封装成缓存对象,以及对缓存对象进行参数配置等。也可以理解为,缓存供给器用于提供缓存对象。缓存管理器是缓存组件的一部分,缓存管理器用于保存缓存供给器中的缓存对象。缓存管理器的设计模式为单例模式,意味着缓存组件中只有一个缓存管理器。缓存供给器的设计模式为模板设计模式,意味着缓存组件中有多个缓存供给器。具体地,缓存组件的结构如图3所示。
初始化预设的缓存组件,包括了初始化缓存组件本身、初始化缓存管理器以及初始化各个缓存供给器,也即实例化缓存组件所对应的对象、实例化缓存管理器所对应的对象以及实例化各缓存供给器所对应的对象。可以理解地,在实际应用中,缓存管理器和缓存供给器都是具体的对象,如java对象等。初始化预设的缓存组件是在检测应用程序启动时进行的。服务器在第一次加载和启动该应用程序、以及服务器宕机后重新启动该应用程序时,都会初始化预设的缓存组件。
若该缓存组件是基于Spring框架实现的缓存组件,初始化缓存组件时,获取配置文件中需实例化的对象,如缓存组件所对应的对象、缓存管理器所对应的对象、缓存供给器所对应的对象等,直接调用Spring框架中的实例化方法,而无需在重新编写实例化方法,加快了实例化的速度。
S202,实例化所述缓存供给器中的缓存对象,其中,缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间。
缓存供给器中可以提供需缓存的缓存数据,然后将该缓存数据封装成对象进行保存。由具体的业务需求来决定每个缓存供给器中所对应的缓存数据,因此每个缓存供给器中所对应的缓存数据可能都不一样。
在一实施例中,如图4所示,步骤S202包括S401-S403。
S401,获取需缓存的缓存数据。需缓存的缓存数据根据具体业务的需求来定,业务需要什么数据,那么需缓存的缓存数据就是什么数据。如全国的省、市、县等数据,集团内规定的业务类型等数据。需缓存的缓存数据可以是通过数据库进行查询得到的,可以是获取的第三方数据如从第三方***中获取的数据,也可以是获取的服务器中的其他数据等。只要是业务需求的数据,同时可以获取的到,那么都可以进行缓存,都可以当做是缓存数据。
S402,将所述缓存数据进行封装,以形成缓存对象。如将缓存数据封装成某一数据结构。对于不同业务需求中的缓存数据,都可以封装成所需求的数据结构。由于缓存供给器是由各开发人员自己定义的继承父类的缓存子类,因此根据各开发人员所实现的业务需求可实现不同缓存数据的封装。将完成封装后的数据对象作为缓存对象。
S403,设置缓存对象的参数,所述参数包括缓存对象名称、缓存生命周期、缓存对象创建时间。通过获取服务器中形成缓存对象的时间,将该时间作为缓存对象的创建时间。缓存生命周期,也即缓存对象的生存时效。缓存对象在缓存生命周期中是有效的,若超过缓存生命周期,该缓存对象被认为无效。
图4实施例所对应的内容可以封装在实例化方法中,如GetData方法中。以实现将缓存供给器中的缓存对象进行实例化。
S203,将实例化后的缓存对象保存至所述缓存管理器中。
实例化缓存供给器中的缓存对象后,将实例化后的缓存对象发送给缓存管理器。缓存管理器调用保存方法,将所对应的缓存对象保存。需要注意的是,只有继承了缓存父类的子类所对应的对象,才可以保存至缓存管理器中。
以上步骤S201-S203是应用程序启动时的步骤流程,可以理解地,应用程序启动时主动将缓存供给器中所对应的缓存对象保存至缓存管理器中。以供下次使用缓存对象时,直接从缓存管理器中读取该缓存对象所对应的数据,如此,不必再从数据库中获取需要的数据或从第三方***中获取需要的数据等,节省了访问数据库、第三方***等的资源,减少了获取数据的时间,提高了获取数据的效率。
S204,若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象。
其中,获取目标数据的请求可以是由终端发送的。在其他实施例中,也可以是由服务器端其他模块发送的。获取目标数据的请求中包括有缓存对象名称。其中,目标数据是缓存对象名称所对应的目标缓存对象所保存的对应的数据。根据缓存对象名称从缓存管理器中查找是否存在该目标缓存对象。若存在该目标缓存对象,执行步骤S205;若不存在该目标缓存对象,执行步骤S207。
S205,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期。
具体地,步骤S205包括:获取服务器中的当前时间、所述目标缓存对象所对应的缓存对象创建时间和所对应的缓存生命周期;将当前时间减去所述缓存对象创建时间以得到时间间隔;判断所述时间间隔是否大于所对应的缓存生命周期;若大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间超过了所对应的缓存生命周期;若不大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间未超过所对应的缓存生命周期。其中,当前时间指的是***时间,由于处理器处理速度很快,当前时间可以理解为检测到存在目标缓存对象的时间时所对应的***时间。
若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,执行步骤S206;若所述目标缓存对象的存在时间超过了所对应的缓存生命周期,执行步骤S207。
S206,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。流程结束。
若未超过所对应的缓存生命周期,意味着该目标缓存对象未过期或者有效。那么读取缓存管理器中该目标缓存对象所对应的缓存数据,将该缓存数据作为目标数据返回。如此,直接从缓存中获取目标数据,减少了获取数据的时间,提高了获取数据的效率。
S207,实例化所述目标缓存对象。即若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象。
若超过所对应的缓存生命周期,意味着该目标缓存对象已经过期或者无效。若该目标缓存对象已经过期或者无效,那么需要更新该目标缓存对象。具体的更新方法为:实例化该目标缓存对象,以将实例化后的目标缓存对象重新保存至缓存管理器中。若缓存管理器中不存在该目标缓存对象,也需实例化目标缓存对象,以将实例化后的目标缓存对象保存至缓存管理器中。可以理解为,若缓存管理器中不存在该目标缓存对象,在缓存管理器中新增该目标缓存对象,以使缓存管理器中存储更多的缓存数据。具体地实例化方法请参看图3实施例所描述的方法,在此不再赘述。
S208,将实例化后的所述目标缓存对象保存至所述缓存管理器中。
S209,将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
上述方法实施例通过在应用程序启动时初始化预设的缓存组件,以在缓存管理器中保存缓存供给器中的缓存对象,当下次访问该缓存对象时,若缓存对象未过期,直接从缓存管理器中获取该缓存对象所对应的缓存数据。若缓存对象已过期,更新该缓存对象,以便在缓存生命周期中访问该缓存对象时可直接从缓存管理器中获取该缓存对象所对应的缓存数据。若缓存管理器中不存在缓存对象,在缓存管理器中新增该缓存对象,以便在缓存生命周期中访问该缓存对象时可直接从缓存管理器中获取该缓存对象所对应的缓存数据。如此节省了访问数据库、第三方***等的资源,减少了获取数据的时间,提高了获取数据的效率。
在其他实施例中,虽然缓存供给器定义了缓存类,但该缓存类可能并不是继承缓存父类的子类。只有继承了缓存父类的子类所对应的对象,才可以保存至缓存管理器中,如此需要对缓存供给器中实例化后的缓存对象所对应的缓存类进行判断。图5是本申请另一实施例提供的数据缓存方法的流程示意图。如图5所示,该方法包括S501-S513。该实施例所对应的步骤与图2实施例所对应的步骤的区别在于:增加了步骤S503-S504,S510-S511。下面将详细介绍步骤S503-S504,S510-S511,其他步骤请参看图2实施例所对应的描述,在此不再赘述。
S503,判断实例化后的所述缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类。
具体地,获取实例化后的该缓存对象,由于对象都是从类中实例化出来的,因此可以获取该缓存对象所对应的缓存类,判断该缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类,如可通过获取代码中的extend等表示继承的关键词来进行判断,示例性的,若代码中存在extend等表示继承的关键词,则表示继承了缓存组件中定义的缓存父类;反之,则没有继承。需要说明的是,也可以通过其他可行的方式进行判断,具体此处不做限定。
若所述缓存对象所对应的缓存类未继承所述缓存组件中定义的缓存父类,执行步骤S504;若所述缓存对象所对应的缓存类继承了所述缓存组件中定义的缓存父类,执行步骤S505。
S504,不将所述缓存对象保存至所述缓存管理器中。如可将所述缓存对象暂时保存在内存中。
S505,将实例化后的缓存对象保存至所述缓存管理器中。
S510,判断实例化后的所述目标缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类。若所述目标缓存对象所对应的缓存类未继承所述缓存组件中定义的缓存父类,执行步骤S511;若所述目标缓存对象所对应的缓存类继承了所述缓存组件中定义的缓存父类,执行步骤S512。
S511,不将所述目标缓存对象保存至所述缓存管理器中。如可将所述目标缓存对象暂时保存在内存中。接着执行步骤S513,以将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
S512,将实例化后的目标缓存对象保存至所述缓存管理器中。
S513,将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
上述方法实施例对实例化后的所述缓存对象所对应的缓存类是否继承所述缓存组件中定义的缓存父类进行了判断,以将继承了缓存父类的缓存对象保存至缓存管理器中,并过滤一些没有继承缓存父类的缓存对象。
以上方法实施例中的需缓存的数据可以为预先配置的数据,或者是与配置数据类似的其他静态数据等。其中,该处的静态数据可理解为较长时间内不会修改的数据,如全国的省、市、县等数据、各个地区的街道等数据、集团内规定的业务类型等数据。
图6是本申请实施例提供的数据缓存装置的示意性框图。如图5所示,对应于以上数据缓存方法,本申请还提供一种数据缓存装置。该装置可以被配置于台式电脑、平板电脑、手提电脑等服务器端。具体地,如图6所示,该装置60包括初始化单元601、实例化单元602、保存单元603、查找单元604、缓存判断单元605以及返回单元606。
初始化单元601,用于检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器。
实例化单元602,用于实例化所述缓存供给器中的缓存对象,其中,缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间。
保存单元603,用于将实例化后的缓存对象保存至所述缓存管理器中。
查找单元604,用于若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;
缓存判断单元605,用于若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期。
在一实施例中,缓存判断单元605包括时间获取单元、相减单元、时间判断单元以及确定单元。其中,时间获取单元,用于获取服务器中的当前时间、所述目标缓存对象所对应的缓存对象创建时间和所对应的缓存生命周期。相减单元,用于将当前时间减去所述缓存对象创建时间以得到时间间隔。时间判断单元,用于判断所述时间间隔是否大于所对应的缓存生命周期。确定单元,用于若所述时间间隔大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间超过了所对应的缓存生命周期;若所述时间间隔不大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间未超过所对应的缓存生命周期。
返回单元606,用于若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。
实例化单元602,还用于若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象。
保存单元603,还用于将实例化后的所述目标缓存对象保存至所述缓存管理器中。
返回单元606,还用于将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
其中,如图7所示,实例化单元602包括缓存数据获取单元701、封装单元702以及设置单元703。其中,缓存数据获取单元701,用于获取需缓存的缓存数据。封装单元702,用于将所述缓存数据进行封装,以形成缓存对象或者目标缓存对象。设置单元703,用于设置缓存对象或者目标缓存对象的参数,所述参数包括缓存对象名称、缓存生命周期、缓存对象创建时间。
在其他实施例中,虽然缓存供给器定义了缓存类,但该缓存类可能并不是继承缓存父类的子类。只有继承了缓存父类的子类所对应的对象,才可以保存至缓存管理器中,如此需要对缓存供给器中实例化后的缓存对象所对应的缓存类进行判断。图8是本申请另一实施例提供的数据缓存装置的示意性框图。该装置80包括初始化单元801、实例化单元802、继承判断单元803、保存单元804、查找单元805、缓存判断单元806以及返回单元807。本实施例的装置是在上述实施例的基础上增加了继承判断单元804。其他单元请参看上述实施例的描述,在此不再赘述。
继承判断单元804,用于判断实例化后的所述缓存对象或者目标缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类。
保存单元804,还用于若继承了所述缓存组件中定义的缓存父类,将实例化后的所述缓存对象或者目标缓存对象保存至所述缓存管理器中;若未继承所述缓存组件中定义的缓存父类,则不将所述缓存对象或者目标缓存对象保存至所述缓存管理器中。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述装置可以实现为一种计算机程序的形式,计算机程序可以在如图9所示的计算机设备上运行。
图9为本申请实施例提供的一种计算机设备的示意性框图。该设备可以是服务器。其中,服务器可以是台式电脑、平板电脑、手提电脑等。该设备90包括通过***总线901连接的处理器902、存储器和网络接口903,其中,存储器可以包括非易失性存储介质904和内存储器905。
该非易失性存储介质904可存储操作***9041和计算机程序9042。该非易失性存储介质中所存储的计算机程序9042被处理器902执行时,可实现上述所述的数据缓存方法。该处理器902用于提供计算和控制能力,支撑整个设备90的运行。该内存储器905为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器902执行时,可使得处理器902执行上述所述的数据缓存方法。该网络接口903用于进行网络通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备90的限定,具体的设备90可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器902用于运行存储在存储器中的计算机程序,以实现如下步骤:
检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;实例化所述缓存供给器中的缓存对象,其中,缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;将实例化后的缓存对象保存至所述缓存管理器中;若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。
在一实施例中,所述处理器902还具体实现如下步骤:
若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象;将实例化后的所述目标缓存对象保存至所述缓存管理器中;将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
在一实施例中,所述处理器902在执行所述实例化所述目标缓存对象时,具体实现如下步骤:
获取需缓存的缓存数据;将所述缓存数据进行封装,以形成目标缓存对象;设置目标缓存对象的参数,所述参数包括缓存对象名称、缓存生命周期、缓存对象创建时间。
在一实施例中,所述处理器902在执行所述将实例化后的所述缓存对象保存至所述缓存管理器中之前,还具体实现如下步骤:
判断实例化后的所述缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类;若继承了所述缓存组件中定义的缓存父类,执行所述将实例化后的所述缓存对象保存至所述缓存管理器中的步骤;若未继承所述缓存组件中定义的缓存父类,则不将所述缓存对象保存至所述缓存管理器中。
在一实施例中,所述处理器902在执行所述根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期时,具体实现如下步骤:
获取服务器中的当前时间、所述目标缓存对象所对应的缓存对象创建时间和所对应的缓存生命周期;将当前时间减去所对应的缓存对象创建时间以得到时间间隔;判断所述时间间隔是否大于所对应的缓存生命周期;若大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间超过了所对应的缓存生命周期;若不大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间未超过所对应的缓存生命周期。
应当理解,在本申请实施例中,所称处理器902可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(应用程序lication Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质可以为计算机可读存储介质。该计算机程序被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供了一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序当被处理器执行时实现以下步骤:
检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;实例化所述缓存供给器中的缓存对象,其中,缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;将实例化后的缓存对象保存至所述缓存管理器中;若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。
在一实施例中,所述处理器还具体实现如下步骤:
若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象;将实例化后的所述目标缓存对象保存至所述缓存管理器中;将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
在一实施例中,所述处理器在执行所述实例化所述目标缓存对象时,具体实现如下步骤:
获取需缓存的缓存数据;将所述缓存数据进行封装,以形成目标缓存对象;设置目标缓存对象的参数,所述参数包括缓存对象名称、缓存生命周期、缓存对象创建时间。
在一实施例中,所述处理器在执行所述将实例化后的所述缓存对象保存至所述缓存管理器中之前,还具体实现如下步骤:
判断实例化后的所述缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类;若继承了所述缓存组件中定义的缓存父类,执行所述将实例化后的所述缓存对象保存至所述缓存管理器中的步骤;若未继承所述缓存组件中定义的缓存父类,则不将所述缓存对象保存至所述缓存管理器中。
在一实施例中,所述处理器在执行所述根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期时,具体实现如下步骤:
获取服务器中的当前时间、所述目标缓存对象所对应的缓存对象创建时间和所对应的缓存生命周期;将当前时间减去所对应的缓存对象创建时间以得到时间间隔;判断所述时间间隔是否大于所对应的缓存生命周期;若大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间超过了所对应的缓存生命周期;若不大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间未超过所对应的缓存生命周期。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据缓存方法,其特征在于,所述方法包括:
检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;
实例化所述缓存供给器中的缓存对象,其中,所述缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;
将实例化后的缓存对象保存至所述缓存管理器中;
若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;
若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;
若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象;
将实例化后的所述目标缓存对象保存至所述缓存管理器中;
将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
3.根据权利要求2所述的方法,其特征在于,实例化所述目标缓存对象,包括:
获取需缓存的缓存数据;
将所述缓存数据进行封装,以形成目标缓存对象;
设置目标缓存对象的参数,所述参数包括缓存对象名称、缓存生命周期、缓存对象创建时间。
4.根据权利要求1所述的方法,其特征在于,在所述将实例化后的所述缓存对象保存至所述缓存管理器中之前,所述方法还包括:
判断实例化后的所述缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类;
若继承了所述缓存组件中定义的缓存父类,执行所述将实例化后的所述缓存对象保存至所述缓存管理器中的步骤。
5.根据权利要求1所述的方法,其特征在于,所述根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期,包括:
获取服务器中的当前时间、所述目标缓存对象所对应的缓存对象创建时间和所对应的缓存生命周期;
将当前时间减去所对应的缓存对象创建时间以得到时间间隔;
判断所述时间间隔是否大于所对应的缓存生命周期;
若大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间超过了所对应的缓存生命周期;若不大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间未超过所对应的缓存生命周期。
6.一种数据缓存装置,其特征在于,所述数据缓存装置包括:
初始化单元,用于检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;
实例化单元,用于实例化所述缓存供给器中的缓存对象,其中,缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;
保存单元,用于将实例化后的缓存对象保存至所述缓存管理器中;
查找单元,用于若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;
缓存判断单元,用于若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;
返回单元,用于若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。
7.根据权利要求6所述的数据缓存装置,其特征在于:
所述实例化单元,还用于若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象;
所述保存单元,还用于将实例化后的所述目标缓存对象保存至所述缓存管理器中;
所述返回单元,还用于将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。
8.根据权利要求6所述的数据缓存装置,其特征在于,所述数据缓存装置还包括:
继承判断单元,用于判断实例化后的所述缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类;
所述保存单元,还用于若所述缓存对象所对应的缓存类继承了所述缓存组件中定义的缓存父类,将所述将实例化后的所述缓存对象保存至所述缓存管理器中。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器,以及与所述存储器相连的处理器;
所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行如权利要求1-5任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810997275.5A CN109240613A (zh) | 2018-08-29 | 2018-08-29 | 数据缓存方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810997275.5A CN109240613A (zh) | 2018-08-29 | 2018-08-29 | 数据缓存方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109240613A true CN109240613A (zh) | 2019-01-18 |
Family
ID=65069477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810997275.5A Withdrawn CN109240613A (zh) | 2018-08-29 | 2018-08-29 | 数据缓存方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240613A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018969A (zh) * | 2019-03-08 | 2019-07-16 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备和存储介质 |
CN110750566A (zh) * | 2019-10-24 | 2020-02-04 | 广州欢聊网络科技有限公司 | 数据处理方法、装置、缓存***及缓存管理平台 |
WO2020215833A1 (zh) * | 2019-04-26 | 2020-10-29 | 创新先进技术有限公司 | 离线缓存方法、装置、终端及可读存储介质 |
US10880583B2 (en) | 2019-04-26 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Method, apparatus, terminal, and readable storage medium for offline caching |
CN112948336A (zh) * | 2021-03-30 | 2021-06-11 | 联想凌拓科技有限公司 | 数据加速方法及缓存单元、电子设备及存储介质 |
CN113626483A (zh) * | 2021-08-18 | 2021-11-09 | 重庆允成互联网科技有限公司 | 一种填写表单的前端缓存方法、***、设备及存储介质 |
CN113703874A (zh) * | 2021-09-06 | 2021-11-26 | 深信服科技股份有限公司 | 一种数据流处理方法、装置、设备及可读存储介质 |
CN115269660A (zh) * | 2022-09-26 | 2022-11-01 | 平安银行股份有限公司 | 缓存数据处理方法、装置、电子设备及存储介质 |
-
2018
- 2018-08-29 CN CN201810997275.5A patent/CN109240613A/zh not_active Withdrawn
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110018969A (zh) * | 2019-03-08 | 2019-07-16 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备和存储介质 |
CN110018969B (zh) * | 2019-03-08 | 2023-06-02 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备和存储介质 |
WO2020215833A1 (zh) * | 2019-04-26 | 2020-10-29 | 创新先进技术有限公司 | 离线缓存方法、装置、终端及可读存储介质 |
US10880583B2 (en) | 2019-04-26 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Method, apparatus, terminal, and readable storage medium for offline caching |
CN110750566A (zh) * | 2019-10-24 | 2020-02-04 | 广州欢聊网络科技有限公司 | 数据处理方法、装置、缓存***及缓存管理平台 |
CN112948336A (zh) * | 2021-03-30 | 2021-06-11 | 联想凌拓科技有限公司 | 数据加速方法及缓存单元、电子设备及存储介质 |
CN112948336B (zh) * | 2021-03-30 | 2023-01-03 | 联想凌拓科技有限公司 | 数据加速方法及缓存单元、电子设备及存储介质 |
CN113626483A (zh) * | 2021-08-18 | 2021-11-09 | 重庆允成互联网科技有限公司 | 一种填写表单的前端缓存方法、***、设备及存储介质 |
CN113626483B (zh) * | 2021-08-18 | 2022-04-26 | 重庆允成互联网科技有限公司 | 一种填写表单的前端缓存方法、***、设备及存储介质 |
CN113703874A (zh) * | 2021-09-06 | 2021-11-26 | 深信服科技股份有限公司 | 一种数据流处理方法、装置、设备及可读存储介质 |
CN113703874B (zh) * | 2021-09-06 | 2023-09-05 | 深信服科技股份有限公司 | 一种数据流处理方法、装置、设备及可读存储介质 |
CN115269660A (zh) * | 2022-09-26 | 2022-11-01 | 平安银行股份有限公司 | 缓存数据处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240613A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
US8788760B2 (en) | Adaptive caching of data | |
US8984058B2 (en) | Pre-fetching remote resources | |
CN109766349B (zh) | 任务防重方法、装置、计算机设备及存储介质 | |
US9544726B2 (en) | Adding location names using private frequent location data | |
US9372898B2 (en) | Enabling event prediction as an on-device service for mobile interaction | |
US20150379035A1 (en) | On-Demand Caching in a WAN Separated Distributed File System or Clustered File System Cache | |
US11366809B2 (en) | Dynamic creation and configuration of partitioned index through analytics based on existing data population | |
CN107077691A (zh) | 用于确定数据库高速缓存命中的基于年龄的策略 | |
CN109614347B (zh) | 多级缓存数据的处理方法、装置、存储介质及服务器 | |
CN104950757A (zh) | 监控容器的方法及*** | |
CN107958018B (zh) | 缓存中的数据更新方法、装置及计算机可读介质 | |
CN105468707A (zh) | 一种基于缓存的数据处理方法及装置 | |
CN107820611A (zh) | 事件处理***调页 | |
CN110442773A (zh) | 分布式***中节点缓存方法、***、装置及计算机介质 | |
CN110677462A (zh) | 多区块链网络的访问处理方法、***、装置及存储介质 | |
US10242102B2 (en) | Network crawling prioritization | |
CN109753243A (zh) | 副本部署方法、云服务器及存储介质 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN115421922A (zh) | 一种分布式***的限流方法、装置、设备、介质及产品 | |
CN109240893A (zh) | 应用运行状态查询方法及终端设备 | |
US10320896B2 (en) | Intelligent mapping for an enterprise grid | |
CN109783321A (zh) | 监控数据管理方法、装置、终端设备 | |
US9619397B2 (en) | Cost sensitive browser cache cleanup based on weighted probabilistic cached item usage | |
US11269784B1 (en) | System and methods for efficient caching in a distributed environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190118 |
|
WW01 | Invention patent application withdrawn after publication |