数据缓存方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:20160007 阅读:17 留言:0更新日期:2019-01-19 00:12
本申请实施例提供一种数据缓存方法、装置、计算机设备及存储介质。所述方法包括:检测到应用程序启动,初始化缓存组件,缓存组件包括缓存管理器和缓存供给器;实例化缓存供给器中的缓存对象,并将实例化后的缓存对象保存至缓存管理器;若接收到获取目标数据的请求,根据请求中的缓存对象名称查找是否存在目标缓存对象;若存在目标缓存对象,判断目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若未超过所对应的缓存生命周期,读取缓存管理器中目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。本申请实施例节省了访问数据库或者第三方系统等的资源,减少了获取数据的时间,提高了获取数据的效率。

【技术实现步骤摘要】
数据缓存方法、装置、计算机设备及存储介质
本申请涉及数据处理
,尤其涉及一种数据缓存方法、装置、计算机设备及存储介质。
技术介绍
在业务系统中有非常多的配置数据(预先配置的数据),是存放在关系型数据库或者第三方系统中,这种配置数据变化的几率非常低,可以说是一种静态化的数据,如省、市、县等数据。当业务需求中需要该配置数据时,若每次都到数据库或者第三方系统中进行查询,会浪费第三方系统以及数据库的资源。如与数据库建立连接的资源,在数据库中进行查询时需要的资源等。尤其是在非大量数据量缓存的业务系统内,采用NoSQL(NotOnlySQL)技术时,在进行配置数据的查询时会增加服务器的复杂度及维护成本。
技术实现思路
本申请实施例提供一种数据缓存方法、装置、计算机设备及存储介质,可节省访问数据库或者第三方系统的资源,减少获取数据的时间,提高获取数据的效率。第一方面,本申请实施例提供了一种数据缓存方法,该方法包括:检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;实例化所述缓存供给器中的缓存对象,其中,所述缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;将实例化后的缓存对象保存至所述缓存管理器中;若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。第二方面,本申请实施例提供了一种数据缓存装置,该装置包括用于执行上述第一方面所述的方法对应的单元。第三方面,本申请实施例提供了一种计算机设备,所述计算机设备包括存储器,以及与所述存储器相连的处理器;所述存储器用于存储计算机程序,所述处理器用于运行所述存储器中存储的计算机程序,以执行上述第一方面所述的方法。第四方面,本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的方法。本申请实施例通过将缓存对象保存在缓存管理器中,当下次访问该缓存对象时,若缓存对象未过期,直接从缓存管理器中获取该缓存对象所对应的缓存数据,如此节省了访问数据库或者第三方系统等的资源,减少了获取数据的时间,提高了获取数据的效率。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图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,获取需缓存的缓存数据。需缓存的缓存本文档来自技高网...

【技术保护点】
1.一种数据缓存方法,其特征在于,所述方法包括:检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;实例化所述缓存供给器中的缓存对象,其中,所述缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;将实例化后的缓存对象保存至所述缓存管理器中;若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。

【技术特征摘要】
1.一种数据缓存方法,其特征在于,所述方法包括:检测到应用程序启动,初始化预设的缓存组件,所述缓存组件包括缓存管理器和缓存供给器;实例化所述缓存供给器中的缓存对象,其中,所述缓存对象包括缓存对象名称、缓存生命周期、缓存对象创建时间;将实例化后的缓存对象保存至所述缓存管理器中;若接收到获取目标数据的请求,根据所述请求中的缓存对象名称从所述缓存管理器中查找是否存在所述缓存对象名称所对应的目标缓存对象;若存在所述目标缓存对象,根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期;若所述目标缓存对象的存在时间未超过所对应的缓存生命周期,读取所述缓存管理器中所述目标缓存对象所对应的缓存数据,将所对应的缓存数据作为目标数据进行返回。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述目标缓存对象的存在时间超过所对应的缓存生命周期或者若所述缓存管理器中不存在所述目标缓存对象,实例化所述目标缓存对象;将实例化后的所述目标缓存对象保存至所述缓存管理器中;将所述目标缓存对象所对应的缓存数据作为目标数据进行返回。3.根据权利要求2所述的方法,其特征在于,实例化所述目标缓存对象,包括:获取需缓存的缓存数据;将所述缓存数据进行封装,以形成目标缓存对象;设置目标缓存对象的参数,所述参数包括缓存对象名称、缓存生命周期、缓存对象创建时间。4.根据权利要求1所述的方法,其特征在于,在所述将实例化后的所述缓存对象保存至所述缓存管理器中之前,所述方法还包括:判断实例化后的所述缓存对象所对应的缓存类是否继承了所述缓存组件中定义的缓存父类;若继承了所述缓存组件中定义的缓存父类,执行所述将实例化后的所述缓存对象保存至所述缓存管理器中的步骤。5.根据权利要求1所述的方法,其特征在于,所述根据当前时间和缓存对象创建时间判断所述目标缓存对象的存在时间是否超过了所对应的缓存生命周期,包括:获取服务器中的当前时间、所述目标缓存对象所对应的缓存对象创建时间和所对应的缓存生命周期;将当前时间减去所对应的缓存对象创建时间以得到时间间隔;判断所述时间间隔是否大于所对应的缓存生命周期;若大于所对应的缓存生命周期,确定所述目标缓存对象的存在时间超...

【专利技术属性】
技术研发人员:徐华陆源魏尧东
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1