CN106843769B - 一种接口数据缓存方法、装置和计算设备 - Google Patents
一种接口数据缓存方法、装置和计算设备 Download PDFInfo
- Publication number
- CN106843769B CN106843769B CN201710058582.2A CN201710058582A CN106843769B CN 106843769 B CN106843769 B CN 106843769B CN 201710058582 A CN201710058582 A CN 201710058582A CN 106843769 B CN106843769 B CN 106843769B
- Authority
- CN
- China
- Prior art keywords
- interface
- data
- sample interface
- weight
- target sample
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003860 storage Methods 0.000 claims abstract description 30
- 238000012546 transfer Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims 2
- 230000014759 maintenance of location Effects 0.000 abstract 1
- 238000013500 data storage Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241000721047 Danaus plexippus Species 0.000 description 1
- 101100273207 Dictyostelium discoideum carC gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in 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/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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Telephonic Communication Services (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种接口数据缓存方法,在计算设备中执行,该方法包括:接收对目标样本接口的调用请求,调用请求包括目标样本接口的地址;根据目标样本接口的地址,在计算设备所存储的多条样本接口缓存记录中查找目标样本接口缓存记录;若查找到目标样本接口缓存记录,则从目标样本接口缓存记录中获取数据,并更新目标样本接口的特征信息;若未查找到目标样本接口缓存记录,则从目标样本接口处获取数据,初始化目标样本接口的特征信息,根据目标样本接口的地址、数据和特征信息在计算设备中增加目标样本接口缓存记录。本发明还公开了能够实施上述方法的接口数据缓存装置,和包括上述装置的计算设备。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种接口数据缓存方法、装置和计算设备。
背景技术
随着信息技术的发展,当前社会已步入大数据时代,数据种类多、体量大、维度高。服务提供方(例如搜索服务提供商、应用提供商等)通常需要基于数据支持来向用户提供服务。而在大数据的背景下,服务提供方很难独自采集到所需的全部数据,而需要通过大量调用第三方接口来获取数据。然而,第三方接口往往存在不稳定、超时严重等问题,影响了服务质量和用户体验。
发明内容
为此,本发明提供一种接口数据缓存方法、装置和计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种接口数据缓存方法,接口包括一个或多个样本接口,样本接口为在特定传递参数下的接口,该方法在计算设备中执行,计算设备中存储有多条样本接口缓存记录,每条样本接口缓存记录包括该样本接口的地址、数据和特征信息,该方法包括:接收对目标样本接口的调用请求,调用请求包括目标样本接口的地址;根据目标样本接口的地址,在所存储的多条样本接口缓存记录中查找目标样本接口缓存记录;若查找到目标样本接口缓存记录,则从目标样本接口缓存记录中获取数据,并更新目标样本接口的特征信息;若未查找到目标样本接口缓存记录,则从目标样本接口处获取数据,初始化目标样本接口的特征信息,根据目标样本接口的地址、数据和特征信息在计算设备中增加目标样本接口缓存记录。
可选地,在根据本发明的接口数据缓存方法中,特征信息包括调用次数、上一次数据更新时间、权值。
可选地,在根据本发明的接口数据缓存方法中,在查找到目标样本接口缓存记录时,更新目标样本接口的特征信息的步骤包括:将调用次数增加1;按照以下公式更新权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数。
可选地,在根据本发明的接口数据缓存方法中,在未查找到目标样本接口缓存记录时,初始化目标样本接口的特征信息的步骤包括:若在预设的超时时间内从目标样本接口处获取到数据,则将调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15;若在预设的超时时间内没有从目标样本接口处获取到数据,则将权值设置为第一值,第一值小于目标接口的所有样本接口的权值的最小值,其中,目标接口为所述目标样本接口所属的接口。
可选地,在根据本发明的接口数据缓存方法中,还包括步骤:对计算设备中存储的多条样本接口缓存记录进行更新:对于一个接口的一个或多个样本接口,若权值最小的样本接口的权值小于等于0,则从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息;依次更新每一个权值大于0的样本接口的权值。
可选地,在根据本发明的接口数据缓存方法中,重置该样本接口的特征信息的步骤包括:将该样本接口的调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。
可选地,在根据本发明的接口数据缓存方法中,按照以下公式更新每一个权值大于0的样本接口的权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数。
根据本发明的一个方面,提供一种接口数据缓存装置,接口包括一个或多个样本接口,样本接口为在特定传递参数下的所述接口,该装置驻留于计算设备中,计算设备中存储有多条样本接口缓存记录,每条样本接口缓存记录包括该样本接口的地址、数据和特征信息,该装置包括:请求接收模块,适于接收对目标样本接口的调用请求,调用请求包括目标样本接口的地址;接口数据获取模块,适于根据目标样本接口的地址,在所存储的多条样本接口缓存记录中查找目标样本接口缓存记录;若查找到目标样本接口缓存记录,则从目标样本接口缓存记录中获取数据,并更新目标样本接口的特征信息;若未查找到目标样本接口缓存记录,则从目标样本接口处获取数据,初始化目标样本接口的特征信息,根据目标样本接口的地址、数据和特征信息在计算设备中增加目标样本接口缓存记录。
根据本发明的一个方面,提供一种计算设备,包括如上所述的接口数据缓存装置。
根据本发明的技术方案,将样本接口数据缓存起来,当需要调用样本接口数据时,可以直接从缓存获取数据,而无需再次调用样本接口,从而保证了获取样本接口数据的实时性和稳定性。另外,本发明为各样本接口设置了特征信息,基于特征信息来更新缓存中的样本接口数据,从而使得缓存中的数据与样本接口处的数据保持一致,保证了数据的有效性。此外,特征信息的设置考虑到样本接口数据的调用次数和历史更新情况,将各样本接口区别对待,样本接口数据能够根据样本接口的特征来实现自适应的更新,被频繁调用的样本接口数据的更新频率更高,使得样本接口数据的更新策略更科学、合理,避免了频繁更新冷门样本接口数据所带来的系统资源消耗。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的网络系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的结构图;
图3示出了根据本发明一个实施例的接口数据缓存装置300的结构图;
图4示出了根据本发明另一个实施例的接口数据缓存装置300的结构图;
图5示出了根据本发明一个实施例的接口数据缓存方法500的流程图;
图6示出了根据本发明另一个实施例的接口数据缓存方法600的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的网络系统100的示意图。图1所示的网络系统100包括计算设备200、多个数据源设备110~130以及多个客户端150~180。应当指出,图1中的网络系统100仅是示例性的,在具体的实践情况中,网络系统100中可以有不同数量的计算设备、数据源设备以及客户端,本发明对网络系统中所包括的计算设备、数据源设备以及客户端的数量不做限制。
计算设备200以及数据源设备110~130可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。客户端150~180可以是诸如服务器、PC、笔记本电脑、手机、平板电脑、笔记本电脑、电视盒子、可穿戴设备等可以接入互联网的设备。客户端150~180可以通过有线的方式接入互联网,也可以通过3G、4G、WiFi、个人热点、IEEE802.11x、蓝牙等无线的方式接入互联网。
计算设备200可以是能够提供某种服务(例如搜索服务、应用服务等)的服务器,其可以经由接口从数据源设备110~130处获取数据(一个数据源设备可能设置有一个或多个接口),并基于获取到的数据向客户端150~180提供相应的服务。例如,计算设备200可以经由接口1从数据源设备110获取相应的数据,经由接口2和接口3从数据源设备120处获取相应的数据,等等。应当指出,一般来说,在定义一个接口时,需要定义该接口的一个或多个传递参数。在定义了接口的传递参数之后,若在调用该接口时未指定传递参数,则会报错,不能获取到数据。另外,对于一个接口,在不同的传递参数下,获取到的是不同的数据。为了叙述方便,我们将特定传递参数下的接口定义为该接口的样本接口,一个接口往往包括多个样本接口。样本接口的URL(Uniform Resource Locator,统一资源定位符)地址为该样本接口所属的接口的URL地址和传递参数的结合,接口地址和传递参数之间用“?”连接,多个传递参数之间用“&”连接,每个传递参数以“参数名=参数值”的形式定义。
例如,接口car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx可以包括以下多个样本接口:
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=145&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=164&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=209&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=314&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=564&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=692&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=871&_appid=sou
car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx?seriesid=982&_appid=sou
计算设备200直接调用接口car.api.autohome.com.cn/v1/carprice/series_infobyseriesid.ashx会得到如下结果:
{"returncode":103,"message":"缺少参数_appid"}
即计算设备200不指定传递参数而直接调用接口无法获取到需要的数据。
计算设备200经由上述第一个样本接口可以获取到如下数据:
{"returncode":0,"message":"成功","result":{"seriesid":145,"seriesname":"POLO","serieslogo":"http://car0.autoimg.cn/upload/2014/8/6/20140806072335496497111.TIF","seriesofficialurl":"http://www.svw-volkswagen.com/zh/models/new_polo.html","seriesfirstletter":"P","countryid":2,"countryname":"德国","brandid":1,"brandname":"大众","brandlogo":"http://car3.autoimg.cn/cardfs/brand/50/g23/M09/5B/8F/autohomecar__wKgFXFbCuGGAark9AAAOm8MlQDA537.TIF","brandofficialurl":"http://www.vw.com.cn/cn.html","brandfirstletter":"D","fctid":58,"fctname":"上汽大众","fctlogo":"http://car2.autoimg.cn/cardfs/fct/50/g16/M12/0A/73/autohomecar__wKgH11ZqxwKAFHY6AAAK2C_J9ok608.TIF","fctofficialurl":"http://www.svw-volkswagen.com","fctfirstletter":"S","levelid":2,"levelname":"小型车","containelectriccar":"0"}}
计算设备200经由上述第二个样本接口可以获取到如下数据:
{"returncode":0,"message":"成功","result":{"seriesid":164,"seriesname":"君威","serieslogo":"http://car0.autoimg.cn/car/upload/2015/4/14/201504141955547774972110.TIF","seriesofficialurl":"http://www.buick.com.cn/Regal/","seriesfirstletter":"J","countryid":4,"countryname":"美国","brandid":38,"brandname":"别克","brandlogo":"http://car0.autoimg.cn/logo/brand/50/130713021829044765.TIF","brandofficialurl":"http://www.buick.com.cn/","brandfirstletter":"B","fctid":93,"fctname":"上汽通用别克","fctlogo":"http://car0.autoimg.cn/logo/fct/50/130713022170246449.TIF","fctofficialurl":"http://www.buick.com.cn/","fctfirstletter":"S","levelid":4,"levelname":"中型车","containelectriccar":"0"}}
即对于一个接口,在不同的传递参数下,获取到的是不同的数据。
在大数据的背景下,计算设备200需要通过大量的第三方接口来从其他数据源设备来获取数据,而第三方接口往往存在不稳定、超时严重等问题,影响了服务质量和用户体验。为了解决该问题,计算设备200中驻留有数据存储装置140和接口数据缓存装置300。
数据存储装置140可以实现为数据库或分布式存储装置等,用于存储多条样本接口缓存记录。当计算设备200从样本接口处获取到数据后,将数据缓存于数据存储装置140中,形成一条样本接口缓存记录,该样本接口缓存记录包括样本接口的地址、数据和特征信息。根据一种实施例,对于多条样本接口缓存记录的地址和数据在数据存储装置140中以哈希表(hash map)的结构存储,在哈希表中,key为地址,value为数据;多条样本接口缓存记录的特征信息可以采用sorted set结构存储。当基于客户端的请求需要调取某个样本接口的数据时,无需再从不稳定的第三方样本接口处直接获取数据,而是直接从数据存储装置140中存储的该样本接口缓存记录中获取数据即可,从而保证了获取样本接口数据的实时性和稳定性。
一般来说,样本接口的地址为该样本接口的URL地址。根据一种实施例,样本接口的地址也可以是该样本接口的URL地址的MD5(Message Digest Algorithm MD5,信息摘要算法第五版)值,其好处是所有样本接口的MD5值长度相等,可以较好地利用存储空间。根据一种实施例,特征信息包括样本接口的调用次数,上一次数据更新时间和权值。其中,调用次数指的是基于客户端的请求而调取样本接口数据的次数,即从数据存储装置140中存储的样本接口缓存记录中调取数据的次数;上一次数据更新时间指的是最近一次计算设备200经由样本接口从数据源设备处获取数据的时间;权值是基于调用次数和上一次数据更新时间而计算出的一个值,其能够用于判断是否要对该样本接口进行数据更新。为了节省存储空间,根据一种实施例,可以将特征信息(例如调用次数、上一次数据更新时间和权值)作为一个变量存储于数据存储装置140中。例如,将特征信息设置为一个32位的无符号整数(例如unsigned long),其中,低位的12个bit用于存储样本接口的调用次数,中间的16个bit用于存储上一次数据更新时间(精确到分钟),高位的4个bit用于存储权值。当然,上述存储方式仅是一个示例,在实际应用中,本领域技术人员可以以任意方式存储特征信息,本发明对此不做限制。
接口数据缓存装置300适于根据数据存储装置140中存储的样本接口缓存记录向客户端提供数据服务,以及对数据存储装置140中存储的样本接口缓存记录进行动态更新。装置300的功能和处理逻辑将在下文中详述。
图2示出了根据本发明一个实施例的计算设备200的结构图。在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的接口数据缓存方法。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224,其中,操作系统或应用在系统存储其206中体现为多段程序指令。在一些实施方式中,应用222可以布置为在操作系统上利用程序数据224进行操作。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在本发明中,系统存储器206中包括接口数据缓存装置300,即系统存储器206中存储有装置300的相关代码,处理器204被配置为用于根据该存储器中存储的所述程序代码中的指令,执行本发明的接口数据缓存方法。
除上述情况之外,装置300本身也可以不驻留于系统存储器206中,而被嵌入可移除存储器236等有形媒介中,即可移除存储器236中存储有装置300的相关程序代码。当可移除存储器236被推入计算设备200且其所包含的程序代码被载入且执行时,计算设备200即变成实践本发明的计算设备。
图3示出了根据本发明一个实施例的接口数据缓存装置300的结构图。如图3所示,装置300包括请求接收模块310和接口数据获取模块320。
请求接收模块310适于接收对目标样本接口的调用请求,其中,调用请求包括目标样本接口的地址。
随后,接口数据获取模块320根据目标样本接口的地址,在数据存储装置140中所存储的多条样本接口缓存记录中查找目标样本接口缓存记录。若接口数据获取模块320查找到目标样本接口缓存记录,则从目标样本接口缓存记录中获取数据,并更新所述目标样本接口的特征信息。根据一种实施例,特征信息包括调用次数、上一次数据更新时间、权值。其中,调用次数指的是基于客户端的请求而调取样本接口数据的次数,即从数据存储装置140中存储的样本接口缓存记录中调取数据的次数;上一次数据更新时间指的是最近一次计算设备200经由样本接口从数据源设备处获取数据的时间;权值是基于调用次数和上一次数据更新时间而计算出的一个值,其能够用于判断是否要对该样本接口进行数据更新。在本发明中,约定权值越小,数据更新的优先级越高。当然,在其他的实施例中,也可以约定权值越大数据更新的优先级越高,本发明对权值的使用方式不做限制。
根据一种实施例,接口数据获取模块320在查找到目标样本接口缓存记录时,将目标样本接口的调用次数增加1,并按照以下公式更新权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期(t1、t0、u均精确到分钟),f为调用次数。应当指出,上述式(1)仅是示例性的,在其他的实施例中,本领域技术人员也可以根据实际情况设置不同的更新权值的公式,本发明对更新权值的具体方法不做限制。
若接口数据获取模块320未查找到目标样本接口缓存记录,则从目标样本接口处获取数据,并初始化该目标样本接口的特征信息,根据目标样本接口的地址、数据和特征信息在所述计算设备中增加目标样本接口缓存记录。根据一种实施例,为了保证从样本接口处获取数据的效率,通常会设置一个比较短的超时时间,若在该超时时间内,接口数据获取模块320从目标样本接口处获取到数据,则在数据存储装置140中增加一条目标样本接口缓存记录,并将特征信息中的调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。若在预设的超时时间内没有从目标样本接口处获取到数据,则在数据存储装置140中增加一条目标样本接口缓存记录,并将权值设置为第一值,其中,第一值小于目标接口(目标接口为目标样本接口所属的接口)的所有样本接口的权值的最小值。由于在本发明中,事先约定了权值越小,数据更新的优先级越高。这样,目标样本接口的权值在其所属的目标接口所包括的所有样本接口中是最小的,从而其数据更新的优先级最高,在后续数据更新的过程中会优先更新该目标样本接口的数据。
基于以上描述,接口数据获取模块320只能基于客户端对于目标样本接口的调用请求来获取数据,并更新特征信息。根据一种实施例,如图4所示,装置300还包括缓存记录更新模块330,能够根据特征信息来自适应地更新样本接口数据和权值,无需基于客户端的请求,从而使得缓存中的数据与样本接口处的数据保持一致,保证了数据的有效性。
如图4所示,缓存记录更新模块330包括数据更新模块332和权值更新模块334。根据一种实施例,为了更方便地实现数据更新和权值更新,可以将一个接口的样本接口的权值放在一个优先级队列(例如最小堆)中,权值越小,优先级越高。一个接口对应于一个优先级队列,多个接口对应于多个优先级队列,在更新数据时,是以接口为单位的,即更新一个接口的各样本接口的数据。当然,在其他的实施例中,权值的优先级也可以采用其他方式排序和存储,本发明对权值的排序和存储方式不做限制。
数据更新模块332适于在一个接口的一个或多个样本接口中,权值最小的样本接口的权值小于等于0时,从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息。根据一种实施例,在重置该样本接口的特征信息时,将调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。
权值更新模块334适于依次更新一个接口的每一个权值大于0的样本接口的权值。根据一种实施例,在更新权值大于0的样本接口的权值时,仍采用前述式(1)。
应当指出,接口数据获取模块320、数据更新模块332和权值更新模块334是同时且互不干扰地执行的。其中,接口数据获取模块320基于对目标样本接口的调用请求来获取目标样本接口的数据并更新其特征信息,数据更新模块332总是用于更新一个接口的多个样本接口中权值最小的且权值小于等于0的样本接口的数据,而权值更新模块334则依次循环地更新一个接口的权值大于0的每一个样本接口的权值。
图5示出了根据本发明一个实施例的接口数据缓存方法500的流程图。方法500基于前述图3所示的装置300中所包括的程序代码和计算设备200的处理器204,在计算设备200中执行。如图5所示,方法500始于步骤S510。
在步骤S510中,接收对目标样本接口的调用请求,调用请求中包括目标样本接口的地址。
随后,在步骤S520中,根据目标样本接口的地址,在所存储的多条样本接口缓存记录中查找目标样本接口缓存记录。
随后,在步骤S530中,判断是否查找到目标接口缓存记录,若是,则执行步骤S540;若否,则执行步骤S550。
在步骤S540中,从目标样本接口缓存记录中获取数据,并更新目标样本接口的特征信息。
在步骤S550中,从目标样本接口处获取数据,初始化目标样本接口的特征信息,根据目标样本接口的地址、数据和特征信息在所述计算设备中增加目标样本接口缓存记录。
步骤S540和步骤S550的具体过程可以参考前述对接口数据获取模块320的描述,此处不再赘述。
图6示出了根据本发明另一个实施例的接口数据缓存方法600的流程图。方法600基于前述图4所示的装置300中所包括的程序代码和计算设备200的处理器204,在计算设备200中执行。如图6所示,方法600包括三个并行的子方法610~630。在具体实施中,方法600可以通过为子方法610创建一个进程;为子方法620和630创建另一个进程,子方法620和630分别作为该进程的两个线程来实现。
子方法610可以基于客户端对于目标样本接口的调用请求来获取数据,并更新特征信息,以保证客户端访问数据的实时性和稳定性。子方法610与前述图5所示的方法500完全相同,此处不再赘述。
子方法620用于不断地更新一个接口的多个样本接口中权值最小的且权值小于等于0的样本接口的数据,从而使得缓存中的数据与样本接口处的数据保持一致,保证了数据的有效性。如图6所示,子方法620始于步骤S621。
在步骤S621中,判断一个接口的权值最小的样本接口的权值是否小于等于0,若是,则执行步骤S622;若否,则执行步骤S623。
在步骤S622中,从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息;随后,继续执行步骤S621中的判断。
在步骤S623中,等待;随后,继续执行步骤S621中的判断。
步骤S621~步骤S623的详细过程可以参考前述对数据更新模块332的描述,此处不再赘述。应当注意,子方法620无需基于客户端的请求,而是不断地判断一个接口的权值最小的且权值小于等于0的样本接口的权值是否小于等于0,若是,则更新该样本接口的数据。
子方法630用于依次循环地更新一个接口的每一个样本接口的权值,从而为子方法620更新样本接口数据奠定基础。如图6所示,子方法630始于步骤S631。
在步骤S631中,判断一个接口队列中的当前样本接口的权值是否大于0,若是,则执行步骤S632;若否,则执行步骤S633。
在步骤S632中,更新当前样本接口的权值;随后,执行步骤S633。
在步骤S633中,获取该接口队列中下一个样本接口的权值;随后,继续执行步骤S631中的判断。
步骤S631~步骤S633的详细过程可以参考前述对数据更新模块334的描述,此处不再赘述。应当注意,子方法630无需基于客户端的请求,而是不断地判断当前样本接口的权值是否大于0,若是,则更新该样本接口的权值。
A5:A2所述的方法,其中,还包括步骤:对计算设备中存储的多条样本接口缓存记录进行更新:
对于一个接口的一个或多个样本接口,
若权值最小的样本接口的权值小于等于0,则从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息;
依次更新每一个权值大于0的样本接口的权值。
A6:A5所述的方法,其中,所述重置该样本接口的特征信息的步骤包括:将该样本接口的调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。
A7:A5所述的方法,其中,按照以下公式更新每一个权值大于0的样本接口的权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数。
B12:B9所述的装置,其中,还包括缓存记录更新模块,适于对计算设备中存储的多条样本接口缓存记录进行更新,
所述缓存记录更新模块包括数据更新模块和权值更新模块,
所述数据更新模块适于:在一个接口的一个或多个样本接口中,权值最小的样本接口的权值小于等于0时,从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息;
所述权值更新模块适于:依次更新一个接口的每一个权值大于0的样本接口的权值。
B13:B12所述的装置,其中,所述数据更新模块进一步适于按照以下步骤重置该样本接口的特征信息:将该样本接口的调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。
B14:B12所述的装置,其中,所述权值更新模块进一步适于按照以下公式更新每一个权值大于0的样本接口的权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (12)
1.一种接口数据缓存方法,所述接口包括一个或多个样本接口,所述样本接口为在特定传递参数下的所述接口,所述方法在计算设备中执行,所述计算设备中存储有多条样本接口缓存记录,每条样本接口缓存记录包括该样本接口的地址、数据和特征信息,所述特征信息包括调用次数、上一次数据更新时间、权值,所述方法包括:
接收对目标样本接口的调用请求,所述调用请求包括目标样本接口的地址;
根据所述目标样本接口的地址,在所存储的多条样本接口缓存记录中查找目标样本接口缓存记录;
若查找到目标样本接口缓存记录,则从所述目标样本接口缓存记录中获取数据,并更新所述目标样本接口的特征信息:将调用次数增加1,并按照以下公式更新权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数;
若未查找到所述目标样本接口缓存记录,则从所述目标样本接口处获取数据,初始化所述目标样本接口的特征信息,根据所述目标样本接口的地址、数据和特征信息在所述计算设备中增加目标样本接口缓存记录。
2.如权利要求1所述的方法,其中,在未查找到所述目标样本接口缓存记录时,初始化所述目标样本接口的特征信息的步骤包括:
若在预设的超时时间内从所述目标样本接口处获取到数据,则将调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15;
若在预设的超时时间内没有从所述目标样本接口处获取到数据,则将权值设置为第一值,所述第一值小于目标接口的所有样本接口的权值的最小值,其中,所述目标接口为所述目标样本接口所属的接口。
3.如权利要求1所述的方法,其中,还包括步骤:对计算设备中存储的多条样本接口缓存记录进行更新:
对于一个接口的一个或多个样本接口,
若权值最小的样本接口的权值小于等于0,则从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息;
依次更新每一个权值大于0的样本接口的权值。
4.如权利要求3所述的方法,其中,所述重置该样本接口的特征信息的步骤包括:将该样本接口的调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。
5.如权利要求3所述的方法,其中,按照以下公式更新每一个权值大于0的样本接口的权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数。
6.一种接口数据缓存装置,所述接口包括一个或多个样本接口,所述样本接口为在特定传递参数下的所述接口,所述装置驻留于计算设备中,所述计算设备中存储有多条样本接口缓存记录,每条样本接口缓存记录包括该样本接口的地址、数据和特征信息,所述特征信息包括调用次数、上一次数据更新时间、权值,所述装置包括:
请求接收模块,适于接收对目标样本接口的调用请求,所述调用请求包括目标样本接口的地址;
接口数据获取模块,适于根据所述目标样本接口的地址,在所存储的多条样本接口缓存记录中查找目标样本接口缓存记录;若查找到目标样本接口缓存记录,则从所述目标样本接口缓存记录中获取数据,并更新所述目标样本接口的特征信息:将所述目标样本接口的调用次数增加1,并按照以下公式更新权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数;
若未查找到所述目标样本接口缓存记录,则从所述目标样本接口处获取数据,初始化所述目标样本接口的特征信息,根据所述目标样本接口的地址、数据和特征信息在所述计算设备中增加目标样本接口缓存记录。
7.如权利要求6所述的装置,其中,所述接口数据获取模块进一步适于:在未查找到所述目标样本接口缓存记录时,
若在预设的超时时间内从所述目标样本接口处获取到数据,则将调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15;
若在预设的超时时间内没有从所述目标样本接口处获取到数据,则将权值设置为第一值,所述第一值小于目标接口的所有样本接口的权值的最小值,其中,所述目标接口为所述目标样本接口所属的接口。
8.如权利要求6所述的装置,其中,还包括缓存记录更新模块,适于对计算设备中存储的多条样本接口缓存记录进行更新,
所述缓存记录更新模块包括数据更新模块和权值更新模块,
所述数据更新模块适于:在一个接口的一个或多个样本接口中,权值最小的样本接口的权值小于等于0时,从该样本接口处获取数据,用获取到的数据更新该样本接口缓存记录中的数据,并重置该样本接口的特征信息;
所述权值更新模块适于:依次更新一个接口的每一个权值大于0的样本接口的权值。
9.如权利要求8所述的装置,其中,所述数据更新模块进一步适于按照以下步骤重置该样本接口的特征信息:将该样本接口的调用次数设置为1,上一次数据更新时间设置为当前时间,权值设置为15。
10.如权利要求8所述的装置,其中,所述权值更新模块进一步适于按照以下公式更新每一个权值大于0的样本接口的权值:
其中,w为权值,round(x)表示对x进行四舍五入,t1为当前时间,t0为上一次数据更新时间,u为预设的更新周期,f为调用次数。
11.一种计算设备,包括如权利要求6-10中任一项所述的接口数据缓存装置。
12.一种计算设备,包括:
至少一个处理器;以及
包括计算机程序指令的至少一个存储器;
所述至少一个存储器和所述计算机程序指令被配置为与所述至少一个处理器一起使得所述计算设备执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058582.2A CN106843769B (zh) | 2017-01-23 | 2017-01-23 | 一种接口数据缓存方法、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058582.2A CN106843769B (zh) | 2017-01-23 | 2017-01-23 | 一种接口数据缓存方法、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106843769A CN106843769A (zh) | 2017-06-13 |
CN106843769B true CN106843769B (zh) | 2019-08-02 |
Family
ID=59121708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710058582.2A Active CN106843769B (zh) | 2017-01-23 | 2017-01-23 | 一种接口数据缓存方法、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843769B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165486B (zh) * | 2018-08-27 | 2021-06-22 | 四川长虹电器股份有限公司 | 一种可配置的接口访问权限控制方法 |
CN110889053B (zh) * | 2019-11-11 | 2022-07-19 | 北京齐尔布莱特科技有限公司 | 一种接口数据的缓存方法、装置及计算设备 |
CN111414383B (zh) * | 2020-02-21 | 2024-03-15 | 车智互联(北京)科技有限公司 | 数据请求方法、数据处理系统及计算设备 |
CN112612546A (zh) * | 2020-12-24 | 2021-04-06 | 广州虎牙科技有限公司 | 页面加载方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN102662859A (zh) * | 2012-03-14 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种基于服务等级的数据缓存的系统和方法 |
CN106021126A (zh) * | 2016-05-31 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 缓存数据处理方法及服务器、配置设备 |
CN106021445A (zh) * | 2016-05-16 | 2016-10-12 | 努比亚技术有限公司 | 一种加载缓存数据的方法及装置 |
CN106254529A (zh) * | 2016-09-20 | 2016-12-21 | 郑州云海信息技术有限公司 | 一种客户端数据缓存方法和装置 |
CN106326389A (zh) * | 2016-08-17 | 2017-01-11 | 深圳市金证科技股份有限公司 | 一种基于数据缓存的业务请求处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129714A1 (en) * | 2004-12-10 | 2006-06-15 | Fujitsu Limited | Method and apparatus for transferring data |
JP5349515B2 (ja) * | 2011-03-14 | 2013-11-20 | 株式会社東芝 | バッファ管理装置、バッファ管理方法及び記憶装置 |
-
2017
- 2017-01-23 CN CN201710058582.2A patent/CN106843769B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN102662859A (zh) * | 2012-03-14 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 一种基于服务等级的数据缓存的系统和方法 |
CN106021445A (zh) * | 2016-05-16 | 2016-10-12 | 努比亚技术有限公司 | 一种加载缓存数据的方法及装置 |
CN106021126A (zh) * | 2016-05-31 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 缓存数据处理方法及服务器、配置设备 |
CN106326389A (zh) * | 2016-08-17 | 2017-01-11 | 深圳市金证科技股份有限公司 | 一种基于数据缓存的业务请求处理方法及系统 |
CN106254529A (zh) * | 2016-09-20 | 2016-12-21 | 郑州云海信息技术有限公司 | 一种客户端数据缓存方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106843769A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843769B (zh) | 一种接口数据缓存方法、装置和计算设备 | |
KR102338208B1 (ko) | 데이터를 처리하기 위한 방법, 장치 및 시스템 | |
US10506043B2 (en) | Rapid client-side component processing based on component relationships | |
AU2014315668B2 (en) | Techniques for server-controlled tiling of location-based information | |
CN105808284B (zh) | 一种增量升级方法及应用其的服务器 | |
CN109391509A (zh) | 一种更新应用程序的方法、系统及应用服务器 | |
CN105760199B (zh) | 一种应用资源加载方法及其设备 | |
CN104808892A (zh) | 一种应用图标排序方法、装置、系统及相关设备 | |
KR102192862B1 (ko) | 키워드 제시 방법 및 장치 | |
KR101198437B1 (ko) | 컨텍스트 트리거형 배포 방법, 장치 및 컴퓨터 판독 가능한 저장매체 | |
CN109740089A (zh) | 数据采集方法、装置、系统、可读存储介质及电子设备 | |
CN110191428A (zh) | 一种基于智能云平台的数据分配方法 | |
CN102857578A (zh) | 一种网络硬盘的文件上传方法、系统及网盘客户端 | |
US10242102B2 (en) | Network crawling prioritization | |
CN103699534B (zh) | 系统目录中数据对象的显示方法及装置 | |
CN103186660B (zh) | 信息源选择系统、信息源选择方法 | |
CN103297482B (zh) | 信息处理方法和设备 | |
WO2014190498A1 (en) | Application ranking calculating apparatus and usage information collecting apparatus | |
CN105574151A (zh) | 图像存储方法和设备 | |
Yuan et al. | Partitioning social networks for fast retrieval of time-dependent queries | |
CN112257111A (zh) | 动态数值脱敏方法、装置及存储介质 | |
US20140115052A1 (en) | Generating meaningful names for content using contextual and identifying information | |
CN115793992A (zh) | 数据存储方法、装置、电子设备及可读存储介质 | |
JP2006185019A (ja) | 検索システム、および情報配置構成決定方法、並びにコンピュータ・プログラム | |
CN111598390B (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 | ||
GR01 | Patent grant |