CN117608679A - 一种程序启动方法、系统、电子设备及存储介质 - Google Patents
一种程序启动方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117608679A CN117608679A CN202311413233.XA CN202311413233A CN117608679A CN 117608679 A CN117608679 A CN 117608679A CN 202311413233 A CN202311413233 A CN 202311413233A CN 117608679 A CN117608679 A CN 117608679A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- program
- local
- service
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000001514 detection method Methods 0.000 claims description 9
- 238000013144 data compression Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种程序启动方法、系统、电子设备及存储介质,包括:当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地;当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存;在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求;根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据;根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。本发明实施例能够加快程序的启动时间,并且减少程序启动时服务不可用的时间,可广泛应用于计算机技术领域。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序启动方法、系统、电子设备及存储介质。
背景技术
本地缓存是一种将数据存储在应用程序内存中的技术,这些数据包括数据库查询结果缓存、计算结果缓存、API响应结果缓存等。在应用程序启动时,可以提前加载和预热一些常用的数据到本地缓存,以提高后续应用程序的性能和响应速度。
参照图1,现有技术的方案是在应用程序启动过程中,通过不断访问数据库查询数据的方式,将数据加载到本地缓存的操作。因为程序运行需要依赖此部分数据的访问,因此当前普遍的解决方案是同步等待缓存加载完成后,程序才能对外正常提供服务。
在上述的应用程序本地缓存加载策略下,随着程序的运行,缓存数据越来越多,数据库查询将越来越慢,由于需要查询数据库的次数变多,在网络链路上的耗时也越长,对于程序的每次重启来说,需要等待本地缓存加载完成的时间将越来越长,少则几分钟多则十几分钟。
在现有的缓存加载解决方案中,由于加载大量的数据时,需要不断经过如下链路:业务程序→网络(耗时T0)→数据库→磁盘访问(耗时T1)→数据库→网络(耗时T2)→业务程序,整个过程主要耗时点计算为:总耗时=T0+T1+T2。而大量的网络传输和数据库查询操作会导致整个系统缓存数据加载很慢,成为系统启动速度的瓶颈。同时,业务程序需要等待缓存加载完毕之后才能对外提供服务,在此期间服务将处于不可用状态。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明提出一种速度快、耗时短的程序启动方法、系统、电子设备及存储介质。
一方面,本发明实施例提供了一种程序启动方法,包括:
当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地;
当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存;
在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求;
根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据;
根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。
可选地,所述当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地,包括:
访问数据库执行查询操作,得到第一缓存数据;
将所述第一缓存数据保存到业务本地缓存;
将所述第一缓存数据进行数据压缩并写入服务器本地的文件中。
可选地,所述当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据,包括:
读取所述服务器本地的文件,得到第一缓存数据;
将所述第一缓存数据刷新到业务本地缓存。
可选地,所述缓存中心处理外部请求的步骤包括:
接收所述业务程序通过网络请求缓存中心接口向缓存中心发送的所述外部请求;
检测第二缓存数据是否加载完成,得到检测结果;
当所述检测结果为加载中,则通过所述外部请求的请求键值查询数据库数据,得到第三数据;
当所述检测结果为已加载,则通过所述外部请求的所述请求键值查询缓存中心的本地缓存,得到所述第二缓存数据;
将所述第三数据或者所述第二缓存数据作为第二数据,返回所述业务程序。
可选地,所述业务程序的内部包括一个全局的业务本地缓存标识,用于标识业务本地缓存的加载状态;
所述缓存中心内部包括一个全局的缓存中心本地缓存标识,用于标识缓存中心缓存的加载状态。
可选地,所述网络请求缓存中心接口是Rest接口或者RPC接口。
可选地,所述方法还包括:
将所述外部请求分配到多个所述缓存中心进行处理。
另一方面,本发明实施例还提供了一种程序启动系统,包括:
第一模块,用于当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地;
第二模块,用于当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存;
第三模块,用于在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求;
第四模块,用于根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据;
第五模块,用于根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。
另一方面,本发明实施例还提供了一种电子设备,包括:处理器以及存储器;存储器用于存储程序;处理器执行程序实现如前面所述的方法。
另一方面,本发明实施例还提供了一种计算机存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现如前面所述的方法。
本发明实施例具有如下有益效果:在业务程序第二次启动开始至第N次启动时,由于服务器本地已经在第一次启动时保存了第一缓存数据,并且直接从本地硬盘读取文件为顺序读写,数据读取效率高,且不需要经过网络链路的消耗,减少了网络请求和数据库查询,避免获取缓存数据过程中的耗时操作,多次启动整体上明显加快了程序启动的速度;此外,在业务程序启动时,如果本地缓存未加载完成,当此时有外部请求进入服务时,可以通过网络请求缓存中心接口获取指定缓存数据,解决了程序启动并对外提供服务必须等待本地缓存数据加载完成的问题,提升了大缓存下程序启动的速度,大量减少了服务不可用的时间。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是现有的程序启动流程示意图;
图2是本发明实施例提供的程序启动方法的步骤图;
图3是本发明实施例提供的程序启动方法的流程示意图;
图4是本发明实施例提供的步骤S100的流程示意图;
图5是本发明实施例提供的步骤S200的流程示意图;
图6是本发明实施例提供的业务程序与缓存中心交互示意图;
图7是本发明实施例提供的缓存中心处理请求的流程示意图;
图8是本发明实施例提供的业务程序的外部请求分配到多个缓存中心处理的示意图;
图9是本发明实施例提供的程序启动系统的结构示意图;
图10是本发明实施例提供的一种电子设备的结构示意图;
图11是本发明实施例提供的现有方案与本发明实施例的方法流程比较图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一/S100”、“第二/S200”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
针对现有技术中大缓存程序启动速度慢、启动耗时高并且服务不可用时间长的问题,本发明实施例提供了一种程序启动方法、系统、电子设备及存储介质。下面首先介绍本发明实示例的一种程序启动方法。
首先对本发明实施例涉及的一些技术名词进行解释如下:
本地缓存:本地缓存是一种将数据存储在应用程序内存中的技术,这些数据包括数据库查询结果缓存、计算结果缓存、API响应结果缓存等。在应用程序启动时,可以提前加载和预热一些常用的数据到本地缓存,以提高后续应用程序的性能和响应速度。
业务本地缓存:业务本地缓存是指在业务程序中的本地缓存。
服务器本地:服务器是承载业务程序的硬件设备,服务器本地的硬盘中有能够存放业务程序数据的文件位置,所存放的业务文件可以称为本地文件。
网络请求缓存中心接口:网络请求缓存中心接口是业务程序与缓存中心进行数据请求交互的接口,在本发明中,该接口可以是Rest接口或者RPC接口。
缓存中心:缓存中心是一个类似于普通业务程序的服务,其主要功能是实现对业务缓存的统一管理,提供一个在业务程序需要时可通过接口请求获取业务缓存的途径。可部署多个缓存中心节点,业务程序进行网络请求时可负载均衡到任意一个缓存中心节点进行处理,提升缓存中心的负载能力。
缓存中心本地缓存:缓存中心本地缓存是指在缓存中心内的本地缓存。下面介绍本发明实施例的程序启动方法,参照图2和图3,图2是本发明实施例提供的程序启动方法的步骤图,图3是本发明实施例提供的程序启动方法的流程示意图,该方法可以包括但不限于包括以下S100~S500。
S100、当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地。
参照图4,图4是本发明实施例提供的步骤S100的流程示意图,当不存在本地文件时,依然经过查询数据库加载第一缓存数据,并将第一缓存数据保存到服务本地文件中。步骤S100具体可以包括以下S110~S130。
S110、访问数据库执行查询操作,得到第一缓存数据。
S120、将所述第一缓存数据保存到业务本地缓存。
S130、将所述第一缓存数据进行数据压缩并写入服务器本地的文件中。
S200、当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存。
参照图5,图5是本发明实施例提供的步骤S200的流程示意图,当存在本地文件时,只需要直接访问本地文件加载第一缓存数据即可。步骤S200具体可以包括以下步骤S210~S220。
S210、读取所述服务器本地的文件,得到第一缓存数据。
S220、将所述第一缓存数据刷新到业务本地缓存。
结合S100和S200,需要说明的是,在业务程序第二次启动开始至第N次启动时,由于服务器本地已经在第一次启动时保存了第一缓存数据,并且直接从本地硬盘读取文件为顺序读写,数据读取效率高,且不需要经过网络链路的消耗,减少了网络请求和数据库查询,避免获取缓存数据过程中的耗时操作,多次启动整体上明显加快了程序启动的速度。
S300、在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求。
在本发明实施例中,程序启动时,第一缓存数据的加载过程中允许业务程序接收外部访问请求。
S400、根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据。
参照图6,图6是本发明实施例提供的业务程序与缓存中心交互示意图。根据外部请求,业务程序(业务程序)在缓存数据未加载完成时,可以通过网络请求缓存中心接口向缓存中心请求第二数据以处理请求。第二数据是指经过缓存中心获得的数据,其可来源于缓存中心的缓存,也可以来源于缓存中心根据请求访问数据库得到。
业务程序内部维护一个全局标识,称为业务本地缓存表示,当本地缓存加载完毕时,可以将该业务本地缓存标识表示为“已加载”,当本地缓存加载未完成时,可以将该业务本地缓存标识表示为“加载中”。通过判断该业务本地缓存标识的表示状态,判断当前是否需要通过网络请求缓存中心接口向缓存中心请求第二数据。
具体而言,当业务本地缓存标识为“加载中”,如有外部请求进入,则通过网络缓存中心接口向缓存中心请求第二数据,用于处理该请求;如该标识为“已加载”,则直接访问本地缓存获取所需数据即可。
参照图7,图7是本发明实施例提供的缓存中心处理请求的流程示意图,缓存中心是本发明实施例中业务程序与数据库之间的缓冲模块,缓存中心从数据库中加载数据暂存在缓存中心,用于提供给业务程序处理外部请求。缓存中心的数据加载流程与业务程序的模块一样,且同样保留有缓存加载标识,称为缓存中心缓存标识。当缓存中心的缓存状态为“已加载”状态时,缓存中心通过请求key值查找本地缓存,并将结果返回给请求方;当缓存中心的缓存状态为“加载中”时,通过请求key值查询数据库获取数据。
基于此,缓存中心处理外部请求的步骤可以包括以下步骤a~e:
a、接收所述业务程序通过网络请求缓存中心接口向缓存中心发送的所述外部请求;
b、检测第二缓存数据是否加载完成,得到检测结果;
c、当所述检测结果为加载中,则通过所述外部请求的请求键值查询数据库数据,得到第三数据;
d、当所述检测结果为已加载,则通过所述外部请求的所述请求键值查询缓存中心的本地缓存,得到所述第二缓存数据;
e、将所述第三数据或者所述第二缓存数据作为第二数据,返回所述业务程序。
所述网络请求缓存中心接口可以是Rest接口或者RPC接口。
S500、根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。
在一些实施例中,本发明实施例的程序启动方法还可以包括S600。
S600、将所述外部请求分配到多个所述缓存中心进行处理。
如图8所示,本发明实施例的缓存中心可以有多个,并且缓存中心是无区别状态的,即部署多个缓存中心服务的时候,请求方请求到哪个缓存中心,其返回的结果都是一样的。将外部请求分配到多个缓存中心进行处理,能够缓解业务程序加载过程中接收到大量业务请求发送到缓存中心所可能造成的负载压力。
另一方面,如图9所示,本发明实施例还提供了一种程序启动系统,包括:
第一模块,用于当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地;
第二模块,用于当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存;
第三模块,用于在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求;
第四模块,用于根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据;
第五模块,用于根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。
需要说明的是,一些实施例中,系统还可以包括如下模块:
第六模块,用于将所述外部请求分配到多个所述缓存中心进行处理。
另一方面,如图10所示,本发明实施例还提供了一种电子设备,包括:处理器以及存储器;存储器用于存储程序;处理器执行程序实现如前面所述的方法。
另一方面,本发明实施例还提供了一种计算机存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于实现如前面所述的方法。
本发明实施例具有如下有益效果:
1、通过将业务程序启动时读取数据库获取缓存数据的方式,优化为读取业务程序所在服务器本地文件的方式,同时创建一个缓存中心模块,在业务程序未加载完缓存时,通过网络请求缓存中心获取缓存数据的方式,实现了业务程序在重启时,对于大缓存的加载速度更快,并且不用等待本地大量缓存加载完成就可以对外提供服务的效果,使得启动速度得到大幅度优化。
2、参照图11,本发明创建一个缓存中心模块,在业务程序未加载完缓存时,通过网络请求缓存中心获取缓存数据的方式,实现了业务程序在重启时,对于大缓存的加载速度更快,并且不用等待本地大量缓存加载完成就可以对外提供服务的效果,使得启动速度相对于现有方案得到大幅度优化。
3、将外部请求分配到多个缓存中心进行处理,能够缓解业务程序加载过程中接收到大量业务请求发送到缓存中心所可能造成的负载压力。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编辑只读存储器(EPROM或闪速存储器)、光纤装置以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
Claims (10)
1.一种程序启动方法,其特征在于,包括:
当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地;
当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存;
在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求;
根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据;
根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。
2.根据权利要求1所述的一种程序启动方法,其特征在于,所述当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地,包括:
访问数据库执行查询操作,得到第一缓存数据;
将所述第一缓存数据保存到业务本地缓存;
将所述第一缓存数据进行数据压缩并写入服务器本地的文件中。
3.根据权利要求1所述的一种程序启动方法,其特征在于,所述当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据,包括:
读取所述服务器本地的文件,得到第一缓存数据;
将所述第一缓存数据刷新到业务本地缓存。
4.根据权利要求1所述的一种程序启动方法,其特征在于,所述缓存中心处理外部请求的步骤包括:
接收所述业务程序通过网络请求缓存中心接口向缓存中心发送的所述外部请求;
检测第二缓存数据是否加载完成,得到检测结果;
当所述检测结果为加载中,则通过所述外部请求的请求键值查询数据库数据,得到第三数据;
当所述检测结果为已加载,则通过所述外部请求的所述请求键值查询缓存中心的本地缓存,得到所述第二缓存数据;
将所述第三数据或者所述第二缓存数据作为第二数据,返回所述业务程序。
5.根据权利要求1所述的一种程序启动方法,其特征在于,
所述业务程序的内部包括一个全局的业务本地缓存标识,用于标识业务本地缓存的加载状态;
所述缓存中心内部包括一个全局的缓存中心本地缓存标识,用于标识缓存中心缓存的加载状态。
6.根据权利要求1所述的一种程序启动方法,其特征在于,所述网络请求缓存中心接口是Rest接口或者RPC接口。
7.根据权利要求1所述的一种程序启动方法,其特征在于,所述方法还包括:
将所述外部请求分配到多个所述缓存中心进行处理。
8.一种程序启动系统,其特征在于,包括:
第一模块,用于当业务程序所在的服务器本地不存在第一缓存数据时,从数据库加载所述第一缓存数据到业务本地缓存,并将所述第一缓存数据保存到所述服务器本地;
第二模块,用于当所述服务器本地存在所述第一缓存数据,从所述服务器本地加载所述第一缓存数据到所述业务本地缓存;
第三模块,用于在所述第一缓存数据的加载过程中,允许所述业务程序接收外部请求;
第四模块,用于根据所述外部请求,通过网络请求缓存中心接口向缓存中心请求第二数据;
第五模块,用于根据所述第二数据处理所述外部请求,直至所述第一缓存数据加载完成。
9.一种电子设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1至7中任一项所述的方法。
10.一种计算机存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由所述处理器执行时用于实现如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311413233.XA CN117608679B (zh) | 2023-10-27 | 2023-10-27 | 一种程序启动方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311413233.XA CN117608679B (zh) | 2023-10-27 | 2023-10-27 | 一种程序启动方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117608679A true CN117608679A (zh) | 2024-02-27 |
CN117608679B CN117608679B (zh) | 2024-09-17 |
Family
ID=89950508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311413233.XA Active CN117608679B (zh) | 2023-10-27 | 2023-10-27 | 一种程序启动方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117608679B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716343A (zh) * | 2012-09-29 | 2014-04-09 | 重庆新媒农信科技有限公司 | 基于数据缓存同步的分布式业务请求处理方法及系统 |
CN106844784A (zh) * | 2017-03-14 | 2017-06-13 | 上海网易小额贷款有限公司 | 数据缓存方法、装置及计算机可读存储介质 |
US20170249310A1 (en) * | 2016-02-26 | 2017-08-31 | Sap Se | Method and device for cache management |
CN112835634A (zh) * | 2021-01-20 | 2021-05-25 | 深圳市瑞驰信息技术有限公司 | 一种基于缓存的安卓应用程序快速启动的系统及方法 |
CN114416212A (zh) * | 2022-01-30 | 2022-04-29 | 中国工商银行股份有限公司 | 移动端应用程序数据资源处理方法及装置 |
-
2023
- 2023-10-27 CN CN202311413233.XA patent/CN117608679B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716343A (zh) * | 2012-09-29 | 2014-04-09 | 重庆新媒农信科技有限公司 | 基于数据缓存同步的分布式业务请求处理方法及系统 |
US20170249310A1 (en) * | 2016-02-26 | 2017-08-31 | Sap Se | Method and device for cache management |
CN106844784A (zh) * | 2017-03-14 | 2017-06-13 | 上海网易小额贷款有限公司 | 数据缓存方法、装置及计算机可读存储介质 |
CN112835634A (zh) * | 2021-01-20 | 2021-05-25 | 深圳市瑞驰信息技术有限公司 | 一种基于缓存的安卓应用程序快速启动的系统及方法 |
CN114416212A (zh) * | 2022-01-30 | 2022-04-29 | 中国工商银行股份有限公司 | 移动端应用程序数据资源处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
杨谦;: "面向分布式系统的高性能缓存管理软件设计及应用", 计算机应用 信息技术与信息化, no. 05, 28 May 2020 (2020-05-28), pages 71 - 73 * |
Also Published As
Publication number | Publication date |
---|---|
CN117608679B (zh) | 2024-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100138391A1 (en) | Management method, management program and management apparatus of database | |
US20090300017A1 (en) | Transaction Parallel Control Method, and Database Managemet System | |
CN109726264A (zh) | 用于索引信息更新的方法、装置、设备和介质 | |
CN109165078B (zh) | 一种虚拟分布式服务器及其访问方法 | |
CN117608679B (zh) | 一种程序启动方法、系统、电子设备及存储介质 | |
CN112541101A (zh) | 订阅数据的推送方法、装置、电子设备及计算机存储介质 | |
CN101483668A (zh) | 热点数据的网络存储和访问方法、设备及系统 | |
US7769736B2 (en) | System and method for efficient issuance of queries | |
CN114205354B (zh) | 事件管理系统、事件管理方法、服务器及存储介质 | |
CN112764897B (zh) | 任务请求的处理方法、装置、系统及计算机可读存储介质 | |
CN115145905A (zh) | 一种数据处理方法、系统、电子设备及可读存储介质 | |
CN113806389A (zh) | 一种数据处理方法、装置、计算设备与存储介质 | |
CN112231105A (zh) | 基于区块链的区块写入方法及系统 | |
CN116303616A (zh) | 本地缓存的刷新方法、装置、电子设备及存储介质 | |
CN114327908B (zh) | 多云管理平台的管理方法 | |
CN114513558B (zh) | 用户请求的处理方法和装置 | |
CN113886415B (zh) | 分布式存储过程的运行方法、电子设备及存储介质 | |
KR100323588B1 (ko) | 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리 방법 | |
CN101127006A (zh) | 多处理器系统、系统板和高速缓存替换请求处理方法 | |
JPH09114684A (ja) | ジョブ振り分け方法 | |
CN116126599A (zh) | 数据中心容灾方法、系统及相关设备 | |
CN117762457A (zh) | 不中断业务的操作系统服务升级方法及装置 | |
CN117632527A (zh) | 基于主键冲突检测的数据写入方法、装置、设备及介质 | |
CN118484443A (zh) | 一种基于gpu的日志结构合并树的高效写入方法 | |
CN114722060A (zh) | 数据同步方法、装置、设备和计算机可读存储介质 |
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 | ||
GR01 | Patent grant |