CN106453500B - 缓存生成及控制方法、缓存服务器及接口服务器 - Google Patents
缓存生成及控制方法、缓存服务器及接口服务器 Download PDFInfo
- Publication number
- CN106453500B CN106453500B CN201610812257.6A CN201610812257A CN106453500B CN 106453500 B CN106453500 B CN 106453500B CN 201610812257 A CN201610812257 A CN 201610812257A CN 106453500 B CN106453500 B CN 106453500B
- Authority
- CN
- China
- Prior art keywords
- cache
- request
- server
- generation
- value
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种缓存生成及控制方法、缓存服务器及接口服务器,用于解决现有缓存方案中,当缓存失效或不存在时,如果有高并发的请求访问数据库,会导致数据库拥堵,性能急剧下降的技术问题。本发明中缓存服务器接收到缓存生成锁定请求后,判断是否已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求。若是,则向接口服务器反馈已被锁定指示,以告知该接口服务器等待缓存值生成,从而有效缓解遇到系统高并发请求时数据库拥堵,性能急剧下降的技术问题,且不会影响缓存技术的运用,利于缓存方案的推广与应用。
Description
技术领域
本发明涉及缓存技术领域,更具体地说,涉及一种缓存生成及控制方法、缓存服务器及接口服务器。
背景技术
随着信息技术和网络技术的发展,缓存技术逐渐成为一个热门且不可或缺的领域。缓存技术在一定程度上提高了系统的并发性能,解决了服务器产品中中央处理器速度和内存速度的速度差异问题,同时对用户请求的响应速度也有一定提高。
现有的缓存生成方案中,用户请求进入服务器时,会调用其对应的接口,在方法中,首先会判断该接口对应的缓存结果是否存在,如果存在,就直接返回给用户;如果不存在(可能是之前有生成但目前已失效,或之前就未生成过),就访问数据库,生成缓存结果,并写入缓存,然后返回给用户。然而,当缓存结果不存在时,现有的缓存生成方案会不可避免的存在用户在某一时刻下发同一用户请求而该用户请求对应的缓存结果不存在时导致的高并发的问题,即这时候如果有高并发的请求到系统,系统会在短时间内根据这些用户请求分别单独对数据库进行访问,导致数据库拥堵,性能急剧下降。因此需要一种可以缓解遇到系统高并发请求时数据库拥堵,性能急剧下降,而且不会影响缓存技术的使用的新缓存优化方案。
发明内容
本发明要解决的技术问题在于:现有的缓存方案中,当缓存结果不存在时,同时有高并发的请求要求访问数据库,会导致数据库拥堵,性能急剧下降。本发明针对该技术问题,提供一种缓存生成及控制方法、缓存服务器及接口服务器。
为解决上述技术问题,本发明提供一种缓存服务器,包括:
锁定接口模块,用于接收接口服务器在用户请求对应的缓存值不存在时发送的缓存生成锁定请求;
锁定处理模块,用于判断已存在与所述缓存生成锁定请求相同的缓存生成锁定请求时,向所述接口服务器反馈已被锁定指示;否则,向所述接口服务器反馈锁定成功指示。
进一步的所述缓存生成锁定请求包含接口服务器根据所述用户请求得到的缓存键;
所述锁定处理模块还用于向所述接口服务器反馈锁定成功指示时,将该缓存生成锁定请求中的缓存键进行存储锁定。
进一步地,所述的缓存服务器,还包括更新模块,用于收到所述接口服务器反馈的根据所述锁定成功指示访问数据库生成缓存值后,将对应存储锁定的缓存键更新为所述缓存值。
进一步地,本发明提供了一种接口服务器,包括:
锁定请求模块,用于判断接收到的用户请求对应的缓存值不存在时,向缓存服务器发送缓存生成锁定请求;
缓存生成处理模块,用于收到所述缓存服务器反馈的已被锁定指示时,等待所述用户请求对应缓存值的生成;以及用于收到所述缓存服务器反馈的锁定成功指示时,调用所述用户请求对应的接口访问数据库生成缓存值,并写入所述缓存服务器。
进一步地,所述接口服务器还包括:
扫描模块,用于对所述缓存服务器中各缓存值的有效时间进行扫描;
所述缓存生成处理模块还用于在所述扫描模块扫描到某一缓存值的剩余有效时间小于预设时间阈值时,获取该缓存值对应的缓存键,根据该缓存键获取对应的接口,调用该接口访问所述数据库重新生成缓存值写入所述缓存服务器。
进一步地,本发明还提供了一种缓存生成控制方法,包括:
接收接口服务器在用户请求对应的缓存值不存在时发送的缓存生成锁定请求;
判断已存在与接收到的所述缓存生成锁定请求相同的缓存生成锁定请求时,向所述接口服务器反馈已被锁定指示;否则,向所述接口服务器反馈锁定成功指示。
进一步地,所述缓存生成锁定请求包含接口服务器根据所述用户请求得到的缓存键;
向所述接口服务器反馈锁定成功指示时,还包括将该缓存生成锁定请求中的缓存键进行存储锁定。
进一步地,所述缓存生成控制方法还包括:
接收到所述接口服务器反馈的根据所述锁定成功指示访问数据库生成缓存值后,将对应存储锁定的缓存键更新为所述缓存值。
进一步地,缓存服务器判断是否存在与当前接收到的缓存生成锁定请求相同的缓存生成锁定请求包括:
判断当前存储锁定的缓存键中是否存在当前接收到的缓存生成锁定请求中的缓存键相同的缓存键。
进一步地,本发明还提供了一种缓存生成方法,包括:
判断接收到的用户请求对应的缓存值不存在时,向缓存服务器发送缓存生成锁定请求;
接收到所述缓存服务器反馈的已被锁定指示时,等待所述用户请求对应缓存值的生成;
接收到所述缓存服务器反馈的锁定成功指示时,调用所述用户请求对应的接口访问数据库生成缓存值,并写入所述缓存服务器。
进一步地,所述缓存生成方法还包括:
判断接收到至少两个对应缓存值不存在的相同的用户请求时,针对所述相同用户请求向所述缓存服务器发送一个缓存生成锁定请求。
进一步地,所述缓存生成方法还包括:
针对所述相同用户请求向所述缓存服务器发送一个缓存生成锁定请求后,在该缓存生成锁定请求对应的缓存值生成之前:
将所述相同用户请求之请求线程中的线程栈内容和请求地址保存到内存中;
向所述各请求线程的请求地址持续发送等待应答消息,并在线程池中将所述请求线程释放。
进一步地,所述缓存生成方法还包括:
检测到发送的缓存生成锁定请求对应的缓存值生成;
根据内存中与所述缓存生成锁定请求对应的各请求线程中的线程内容和请求地址,将对应的各请求线程恢复到线程池中,并根据恢复的请求线程将所述缓存值反馈给对应的用户。
进一步地,所述缓存生成方法还包括:
对所述缓存服务器中各缓存值的有效时间进行扫描;
扫描到某一缓存值的剩余有效时间小于预设时间阈值时,获取该缓存值对应的缓存键,根据该缓存键获取对应的接口,调用该接口访问所述数据库重新生成缓存值写入所述缓存服务器。
进一步地,在扫描到某一缓存值的剩余有效时间小于预设时间阈值后,获取该缓存值对应的缓存键之前,还包括:
判断该缓存值是否为常用缓存值,如否,不获取该缓存值对应的缓存键。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行前述的任一项的缓存生成控制方法和缓存生成方法。
有益效果
本发明实施例提供的缓存生成方法、生成控制方法、缓存服务器、接口服务器以及计算机存储介质,缓存服务器在接收到接口服务器发送的用户请求对应的缓存值不存在时发送的缓存生成锁定请求后,判断接收到的缓存生成锁定请求是否已存在相同的缓存生成锁定请求,若判断存在,则向对应的接口服务器反馈该缓存生成锁定请求已被锁定,此时接口服务器会收到缓存服务器反馈的已被锁定指示,表明已存在其他接口服务器针对相同的用户请求访问数据库生成对应的缓存值,待该缓存值生成后,将之反馈给用户。该方案较现有缓存方案而言,对接收到的缓存生成锁定请求进行了一个判别,实现了对相同缓存生成锁定请求的单一访问的控制,限定了多请求访问数据库时相同请求只有一个进入访问,对高并发请求导致的数据库拥堵,性能急剧下降的技术问题有良好的效缓解作用,且不会影响缓存技术的运用。另外,本发明实施例中的缓存服务器仅对相同缓存生成锁定请求进行锁定,保证相同缓存生成锁定请求中只有一条被锁定,对于不同的则分别锁定,而不需要一定等待前面先锁定的请求生成缓存值解锁后,才能下一条才能被锁定,因此在缓解高并发请求导致的数据库拥堵问题的同时,还可以保证缓存值生成的效率,提升用户体验。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为实现本发明各个实施例一个可选的服务器的结构示意图;
图2为本发明第一实施例提供的缓存生成控制方法流程图;
图3为本发明第一实施例提供的缓存生成方法流程图;
图4为本发明第一实施例提供的包含Redis缓存服务器的系统结构图;
图5为本发明第一实施例提供的以Redis缓存服务器为例的缓存生成控制流程图;
图6为本发明第二实施例提供的一种发送缓存生成锁定请求的流程图;
图7为本发明第三实施例提供的缓存刷新流程图;
图8为本发明第四实施例提供的缓存生成控制系统结构示意图;
图9为本发明第四实施例提供的缓存服务器结构示意图;
图10为本发明第四实施例提供的接口服务器结构示意图;
图11为本发明第四实施例提供的一种缓存生成控制系统结构示意图;
图12为本发明第五实施例提供的一种接口服务器的结构示意图;
图13为本发明第六实施例提供的一种接口服务器的结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的服务器。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
如图1所示,为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:输入输出(IO)总线11、处理器12、存储器13、内存14和通信装置15。其中,
输入输出(IO)总线11分别与自身所属的服务器的其它部件(处理器12、存储器13、内存14和通信装置15)连接,并且为其它部件提供传送线路。
处理器12通常控制自身所属的服务器的总体操作。例如,处理器12执行计算和确认等操作。其中,处理器12可以是中央处理器(CPU)。
存储器13存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器12执行本文描述的功能的指令(即软件执行功能)。
其中,本发明提供的缓存生成控制系统中,锁定接口模块、锁定处理模块、更新模块、锁定请求模块、缓存生成处理模块和扫描模块的功能的软件代码可存储在存储器13中,并由处理器12执行或编译后执行。
内存14,一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE),RAM是其中最重要的存储器。内存14是计算机中重要的部件之一,它是与CPU12进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放CPU12中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,CPU12就会把需要运算的数据调到内存中进行运算,当运算完成后CPU12再将结果传送出来。
通信装置15,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。
以下通过具体实施例进行详细说明。
第一实施例
参照图2,图2为本发明第一实施例提供的缓存生成控制方法流程图,其控制过程包括:
S201:缓存服务器接收缓存生成锁定请求;
S202:判断是否已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求;若是,转至S203;否则,转至S204;
S203:向接口服务器反馈已被锁定指示。
S204:向接口服务器反馈锁定成功指示。
本实施例中缓存服务器接收的缓存生成锁定请求是指,接口服务器在接收到用户请求且判断对应的缓存值不存在时生成发送的请求。
应当理解的是,本实施例中,缓存值不存在主要有缓存值失效或未生成过两种状态。缓存值失效是指缓存服务器中对应的缓存值已超过缓存值设定的有效期限而自动消失。缓存值未生成过是指在缓存服务器中,一直没有对应的缓存值存在过。缓存值不存在的实质是指,接口服务器在缓存服务器中找不到用户请求所对应的缓存值,此时接口服务器需根据用户请求向缓存服务器发送对应的缓存生成锁定请求以请求访问数据库生成对应的缓存值。
本实施例中,缓存生成锁定请求包含接口服务器根据用户请求得到的缓存键。缓存键具体可以根据用户请求中包含的接口方法,参数名,参数值等信息生成。
本实施例中,一个用户请求对应一个接口,一个接口对应一个缓存键,一个缓存键对应一个缓存值。应当理解的是,接口包含接口方法,参数名,参数值等信息,参见表1。
表1
接口方法1 | 参数名1 | 参数值1 |
接口方法2 | 参数名2 | 参数值2 |
… | … | … |
本实施例中,缓存服务器判断是否已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求,可以是根据接收到的缓存生成锁定请求中包含的缓存键与已存在的缓存生成锁定请求中的缓存键是否相同来判断。本实施例中,已被锁定指示和锁定成功指示可以分别是:包含告知接口服务器该缓存生成锁定请求已被其余缓存生成锁定请求锁定和该缓存生成锁定请求被发送该请求的缓存服务器锁定成功的信息。具体的,缓存服务器向接口服务器反馈锁定成功指示时,可以将该缓存生成锁定请求中的缓存键进行存储锁定,此时在该缓存键未被解锁之前,其余相同的缓存键不能被存储锁定,对应反馈已被锁定指示,告知对应的接口服务器等待缓存值的生成即可。
例如,缓存服务器判定缓存生成锁定请求1不存在与之相同的缓存生成锁定请求,则对缓存生成锁定请求1对应的接口服务器反馈锁定成功指示,同时将该缓存生成锁定请求1中的缓存键1存储锁定,此时缓存服务器接收到缓存生成锁定请求2,该缓存生成锁定请求2中的缓存键与缓存键1相同,则此时缓存服务器判定已存在与该缓存生成锁定请求2相同的缓存生成锁定请求,不对该缓存生成锁定请求2中的缓存键进行存储锁定,向发送缓存生成锁定请求2的接口服务器反馈已被锁定指示,以告知该接口服务器等待缓存值生成。
本实施例中还对应提供一种缓存生成方法,参见图3,图3为缓存生成方法流程图,其生成控制过程包括:
S301:接口服务器接收用户请求;
S302:判断用户请求对应的缓存值是否存在;若是,转至S308;否则,转至S303;
S303:向缓存服务器发送缓存生成锁定请求;
S304:接收缓存服务器反馈的指示信息;
S305:判断指示信息是已被锁定指示还是锁定成功指示;若是已被锁定指示,转至S306;若是锁定成功指示,转至S307;
S306:等待用户请求对应缓存值的生成后;转至S308;
S307:调用用户请求对应的接口访问数据库生成缓存值,写入所述缓存服务器;转至S308;
S308:将缓存值反馈给对应的用户。
这样,当接口服务器每次判断用户请求对应的缓存值不存在时都会发送缓存生成锁定请求到缓存服务器,生成或等待生成后对应的缓存值反馈给对应的用户。
应当理解的是,本实施例中,接口服务器在接收用户请求之后会生成对应的缓存键,并根据该缓存键对应地查询缓存值信息。
具体的,本实施例中,接口服务器调用用户请求对应的接口访问数据库生成缓存值可以是根据对应的接口中的接口方法及相应的参数来生成对应的缓存值。
具体的,本实施例中,缓存服务器可以是Redis(重申)缓存服务器。Redis缓存服务器可以实现无论接收到多少缓存生成锁定请求,只要接收到的所述缓存生成锁定请求已存在与之相同的缓存生成锁定请求,则向接口服务器反馈已存在其他接口服务器针对相同的用户请求访问数据库生成对应的缓存值,而该接口服务器等待缓存值生成,,进而避免大量缓存生成锁定请求同时涌入数据库,造成数据库拥堵的问题。
本实施例中,Redis缓存服务器、接口服务器和用户之间的关系如图4所示,Redis缓存服务器可以同时接入多个接口服务器,可以接收每个接口服务器发送的缓存生成锁定请求;每个接口服务器直接与用户对接,接收用户请求。应当注意的是,Redis缓存服务器接收缓存生成锁定请求可以同时接收多个缓存生成锁定请求,也可以每时刻只接收一个缓存生成锁定请求;接口服务器可以同时发送多个缓存生成锁定请求,也可以每时刻只发送一个缓存生成锁定请求;每个接口服务器直接对接的用户并不限定为一个。
具体的,参考图5,图5为以Redis缓存服务器为例的缓存生成控制流程图,生成控制过程包括:
S501:接口服务器接收用户请求;
S502:接口服务器判断用户请求对应的缓存值是否存在;若是,转至S507;否则,转至S503;
S503:接口服务器向Redis缓存服务器发送缓存生成锁定请求;
S504:Redis缓存服务器判断是否已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求;若是,转至S505;否则,转至S506;
S505:接口服务器等待用户请求对应缓存值的生成后;转至S507;
S506:接口服务器调用用户请求对应的接口访问数据库生成缓存值,写入所述缓存服务器;转至S507;
S507:将缓存值反馈给对应的用户。
应当理解的是,上述以Redis缓存服务器为例进行讲解的内容并非仅适用于Redis缓存服务器,对任意可实现本发明缓存生成控制方法的缓存服务器都适用,具有普适性。
本实施例中,缓存服务器判断已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求的情况时,此时接口服务器会收到缓存服务器反馈的已被锁定指示,表明已存在其他接口服务器针对相同的用户请求访问数据库所生成对应的缓存值,自身继续等待即可。本实施例中,接口服务器接收到反馈的锁定成功指示后,会调用用户请求对应的接口访问数据库,生成对应的缓存值。
本实施例中,接口服务器根据锁定成功指示访问数据库生成缓存值后,接口服务器可以将生成的缓存值写入缓存服务器,缓存服务器可以将对应存储锁定的缓存键更新为该缓存值。例如,缓存服务器接收到接口服务器根据锁定成功指示访问数据库生成的缓存值1后,对应的删除存储锁定的缓存键1,重新写入该缓存值1。
应当理解的是,本实施例中,在生成好对应的缓存值后,缓存服务器还可以主动通知之前发送请求生成该缓存值的缓存生成锁定请求的各接口服务器,通知的内容可以仅包含已生成好了对应的缓存值,也可以包含生成好的对应缓存值。缓存服务器再更新对应存储锁定的缓存键为该缓存值。
本实施例中,缓存服务器也可以不主动通知之前发送请求生成该缓存值的缓存生成锁定请求的各接口服务器,等待上述各接口服务器按照一定查询原则主动查询,查询原则可以是各接口服务器每隔一段时间向缓存服务器发送一次查询信息。
应当理解的是,本实施例中的缓存生成控制方法主要针对用户请求对应的缓存值不存在的情况设定的,以解决此种情况下,若一时间段接收到的缓存生成锁定请求频率较高,容易造成数据库拥堵,性能急剧下降的问题。
本实施例提供的缓存生成控制方法和缓存生成方法中,缓存服务器和接口服务的具体结构均可参考图1,其中步骤S201、S301、S303、S304和S308等需要向其他服务器或用户发送信息的步骤可以通过缓存服务器中的通信装置来实现,其余步骤可以通过缓存服务器中的处理器实现。
基于本实施例提供的缓存生成控制方法和缓存生成方法,当缓存服务器接收到多个缓存生成锁定请求时,都会判断接收到的缓存生成锁定请求是否已存在相同的缓存生成锁定请求,若判断存在,则向对应的接口服务器反馈该缓存生成锁定请求已被锁定,此时接口服务器会收到缓存服务器反馈的已被锁定指示,表明已存在其他接口服务器针对相同的用户请求访问数据库生成对应的缓存值,待该缓存值生成后,将之反馈给用户,有效解决了高并发请求时,服务器数据库拥堵,性能急剧下降的技术问题。同时,接口服务器发送缓存生成锁定请求访问数据库时,不需等待其余不同的缓存生成锁定请求锁释放,可直接访问,避免了如果某次请求的响应时间过长,锁无法释放,导致到别的请求无法响应的问题。
第二实施例
本实施例在第一实施例的基础上提供了一种缓存生成方法。
参照图6,图6为本发明第二实施例提供的一种接口服务器对用户请求进行筛选时的,发送缓存生成锁定请求的流程图。其过程包括:
S601:接口服务器接收用户请求;
S602:判断是否存在对应缓存值;若是,转入S603;否则,转入S604;
S603:将对应的缓存值返回给用户。
S604:判断是否存在相同用户请求;若是,转入S605;否则,转入S606;
S605:针对相同用户请求向缓存服务器发送一个缓存生成锁定请求。
S606:针对每个用户请求向缓存服务器发送一个缓存生成锁定请求。
即当接口服务器判断接收到用户请求中,接收到至少两个对应缓存值不存在的相同的用户请求时,针对该相同用户请求向缓存服务器只发送一个缓存生成锁定请求。
应当理解的是,用户请求可以生成对应的缓存键,本实施例中对接口服务器接收到的用户请求的筛选包括但不限于通过缓存键进行比对筛选。应当理解的是,本实施例中仅是提供了参考的筛选方法,并不代表本发明只能采用本实施例提供的筛选方法,只要能实现接口服务器对接收到的用户请求进行相同用户请求筛选都应在本发明保护范围之内。
本实施例通过对接收到的相同用户请求进行筛选,在一定程度上避免了在用户请求数量过多时,缓存服务器从同一接口服务器接收到多条相同的缓存生成锁定请求的问题,提升缓存服务器的性能。
进一步的,本实施例中,在接口服务器针对相同用户请求向缓存服务器发送一个缓存生成锁定请求之后,在该缓存生成锁定请求对应的缓存值生成之前,对于相同用户请求还可以将其请求线程内容保存到内存中,同时在线程池中将该请求线程释放,从而避免当缓存失效或不存在时,接口服务器短时间接收到大量用户请求,从而导致线程池全部被占满,无法处理其余的用户请求的问题。
本实施例中,该相同用户请求中的请求线程内容包括:线程栈内容和请求地址等。前述线程栈内容和请求地址用于根据其将保存到内存中的将该相同用户请求恢复到线程池中。
应当理解的是,本实施例中,为保证内存中的各用户请求不会中断,需向保存到内存中的各请求线程的请求地址持续发送等待应答消息。例如,通过http(超文本传送协议)应答包来保证各用户的请求不会中断。
应当理解的是,本实施例中,根据线程栈内容和请求地址将保存到内存中的将该相同用户请求恢复到线程池中包括:
当接口服务器检测到发送的缓存生成锁定请求对应的缓存值生成之后,接口服务器根据内存中与缓存生成锁定请求对应的各请求线程中的线程内容和请求地址,将对应的各请求线程恢复到线程池中,并根据恢复的请求线程将缓存值反馈给对应的用户。
应当理解的是,内存中的与缓存生成锁定请求对应的各请求线程是指,与缓存生成锁定请求对应的各相同用户请求的请求线程,因为其为相同的用户请求,其请求线程中的线程内容基本相同,则可根据线程内容和请求地址对应地恢复到线程池中。
应当理解的是,本实施例中,接口服务器判断用户请求是否相同包括:判断各用户请求对应的缓存键是否相同。具体可以是根据缓存键找到对应接口中的接口方法来确定用户请求是否相同。
本实施例细化的缓存生成方法中,接口服务器的具体结构可参考图1,其中接口服务器接收用户请求,将对应的缓存值返回给用户和向缓存服务器发送包含相应缓存键的缓存生成锁定请求的操作可以通过接口服务器中的通信装置来实现;获取与接收到的用户请求对应的缓存键,判断是否存在对应缓存值和判断是否存在相同用户请求可以通过代码形式设置于接口服务器的存储器中,并由接口服务器的处理器实现。将相同用户请求保存到内存中、向保存在内存中的线程地址发送应答消息和恢复保存到内存中用户请求到线程池中可以通过接口服务器的处理器实现。
基于本实施例提供的缓存生成方法,对接口服务器接收到多个用户请求时,可以先对接收到的缓存生成锁定请求进行一个判断,判断是否存在至少两个是相同用户请求的情况,若判断存在相同用户请求且都不存在对应缓存值,仅提取一个生成缓存生成锁定请求发送到缓存服务器。在一定程度上避免了在用户请求数量过多时,缓存服务器从同一接口服务器接收到多条相同的缓存生成锁定请求的问题,提升缓存服务器的性能。此时相同用户请求中等待缓存结果生成的用户请求可以保存至内存中待生成缓存值后恢复。避免当缓存失效或不存在时,短时间的高用户请求可能导致线程池全部被占满,而无法处理其余的用户请求的问题。
第三实施例
为尽可能的减少用户请求对应的缓存值不存在的情况,本实施例在第一实施例和第二实施例的基础上提供了一种缓存生成控制方法。
参照图7,图7为本发明第三实施例提供的缓存刷新流程图。缓存刷新过程包括:
S701:接口服务器对缓存服务器中的各缓存值的有效时间进行扫描;
S702:被扫描缓存值剩余有效时间是否小于预设时间阈值;若是,则转入S703;否则,转入S706;
S703:获取该缓存值对应的缓存键;
S704:根据该缓存键获取对应的接口;
S705:调用获取的接口重新生成缓存值写入缓存服务器。
S706:不对该缓存值进行操作。
这样对已经存在的缓存进行刷新,可以有效减少缓存失效或不存在的次数,从而避免高请求时,因缓存失效或不存在导致访问数据库的请求过多,造成拥堵的问题。
例如一个缓存值的有效时间为30分钟,设定时间阈值为2分钟,当这个缓存值的有效时间小于2分钟时,就可以对其进行刷新,从而保证缓存值不失效。
具体的,接口服务器在扫描缓存服务器中的各缓存值时,可以根据所需要刷新的缓存值找到对应的缓存键,再根据对应的缓存键找到对应的接口,以生成缓存值,进行刷新。具体的可以是,根据对应接口中的参数名和参数值信息,找到接口方法,对接口方法进行调用,以生成缓存值,进行刷新。
应当理解的是,本实施例中,调用获取的接口方法重新生成缓存值写入缓存服务器包括:调用获取的接口重新生成新的缓存值写入缓存服务器,同时重新设定缓存值对应的有效时间。例如,每个缓存值的有效时间为30分钟,此时缓存服务器调用接口方法1重新生成了缓存值1,此时不论重新生成的缓存值1和原有的缓存值相比是否变化,缓存值1所对应的有效时间被重新设定为30分钟。
进一步的,本实施例中,在接口服务器扫描到某一缓存值的剩余有效时间小于预设时间阈值之后,获取该缓存值对应的缓存键之前,还可以对该缓存值是否为常用缓存值进行判断,如果不是常用缓存值,则不获取该缓存值对应的缓存键,即不对该缓存值进行刷新,使其在有效时间期满以后自动消失。
应当理解的是,本实施例中,对常用缓存值的判断是为了避免缓存无限增大的问题,即避免缓存不断刷新之后,其存储空间不足的问题。
应当理解的是,本实施例中,对于缓存值是否为常用缓存值可以采用预设使用阈值的方式进行判断。当缓存值被用户访问到的次数大于或等于预设使用阈值时,则判定该缓存值为常用缓存值;反之,则判定该缓存值不是常用缓存值。
本实施例中,对于使用阈值的设定包括但不限于:根据用户访问频率来设定,例如阈值设定为1000次/有效时间;或根据缓存值自身属性来设定,例如某缓存值对应的用户请求为系统用户请求,另一缓存值对应的用户请求为某网页的应答请求,则可设定前一缓存值为常用缓存值,后一缓存值为不常用缓存值。应当理解的是,本实施例中提出的使用阈值的设定方法并不限于上述两种,任何实现对于使用阈值的设定的方法都应在本发明的保护范围中。
本实施例细化的缓存生成控制方法中,接口服务器和缓存服务器的具体结构均可参考图1,步骤S701-S706可以通过代码形式设置于接口服务器的存储器中,并由接口服务器的处理器实现。
基于本实施例提供的缓存生成控制方法,接口服务器可以对缓存服务器中的各缓存值进行扫描刷新,可以有效减少缓存不存在的次数,从而避免接口服务器接收到大量用户请求时,因缓存失效或不存在导致要求访问数据库的请求过多,造成拥堵的问题。
第四实施例
参照图8,图8为本发明第四实施例提供的缓存生成控制系统结构示意图,包括:接口服务器2;缓存服务器3。
缓存服务器3具体结构参见图9,包括:
锁定接口模块31,用于接收接口服务器在用户请求对应的缓存值不存在时发送的缓存生成锁定请求;
锁定处理模块32,用于判断已存在与所述缓存生成锁定请求相同的缓存生成锁定请求时,向所述接口服务器反馈已被锁定指示;否则,向所述接口服务器反馈锁定成功指示。
本实施例中锁定接口模块31接收缓存生成锁定请求是指,接口服务器在接收到用户请求且判断对应的缓存值不存在时生成发送的请求。
应当理解的是,本实施例中,缓存值不存在主要有缓存值失效或不存在两种状态。缓存值失效是指缓存服务器中对应的缓存值已超过缓存值设定的有效期限而自动消失。缓存值未生成过是指在缓存服务器中,一直没有对应的缓存值存在过。缓存值不存在的实质是指,接口服务器2在缓存服务器3中找不到用户请求所对应的缓存值。此时接口服务器2需根据用户请求向锁定接口模块31发送对应的缓存生成锁定请求以请求访问数据库生成对应的缓存值。
本实施例中,缓存生成锁定请求包含接口服务器2根据用户请求得到的缓存键。缓存键具体可以根据用户请求中包含的接口方法,参数名,参数值等信息生成。值得注意的是,一个用户请求对应一个接口,一个接口对应一个缓存键,一个缓存键对应一个缓存值。
本实施例中,锁定处理模块32判断是否已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求,可以是根据接收到的缓存生成锁定请求中包含的缓存键与已存在的缓存生成锁定请求中的缓存键是否相同来判断。
本实施例中,锁定处理模块32反馈已被锁定指示和锁定成功指示可以分别是:反馈包含告知接口服务器该缓存生成锁定请求已被其余缓存生成锁定请求锁定和该缓存生成锁定请求被发送该请求的缓存服务器锁定成功的信息。
本实施例中,锁定处理模块32向接口服务器2反馈锁定成功指示时,还可以将该缓存生成锁定请求中的缓存键进行存储锁定。应当理解的是,锁定处理模块32进行存储锁定的意思是,在该被存储锁定缓存键未被解锁之前,其余相同的缓存键不能被存储锁定,对应向接口服务器2反馈已被锁定指示,告知对应的接口服务器2等待缓存值的生成即可。
例如,缓存服务器3判定缓存生成锁定请求1不存在与之相同的缓存生成锁定请求,则对缓存生成锁定请求1对应的接口服务器2反馈锁定成功指示,同时将该缓存生成锁定请求1中的缓存键1存储锁定,此时缓存服务器接收到缓存生成锁定请求2,该缓存生成锁定请求2中的缓存键与缓存键1相同,则此时缓存服务器判定已存在与该缓存生成锁定请求2相同的缓存生成锁定请求,不对该缓存生成锁定请求2中的缓存键进行存储锁定,向发送缓存生成锁定请求2的接口服务器反馈已被锁定指示,以告知该接口服务器等待缓存值生成。
接口服务器2具体结构参见图10,包括:
锁定请求模块21,用于判断接收到的用户请求对应的缓存值不存在时,向缓存服务器发送缓存生成锁定请求;
缓存生成处理模块22,用于收到所述缓存服务器反馈的已被锁定指示时,等待所述用户请求对应缓存值的生成;以及用于收到所述缓存服务器反馈的锁定成功指示时,调用用户请求对应的接口访问数据库生成缓存值,并写入所述缓存服务器。
当锁定请求模块21判断用户请求对应的缓存值不存在时,都会发送缓存生成锁定请求到缓存服务器,锁定处理模块32等待生成或调用用户请求对应的接口访问数据库生成缓存值并反馈给对应的用户。
应当理解的是,本实施例中,锁定请求模块21在接收用户请求之后会生成对应的缓存键,并判据该缓存键断接收到的用户请求对应的缓存值是否存在。
具体的,本实施例中,缓存生成处理模块22调用用户请求对应的接口访问数据库生成缓存值,可以是根据对应的接口中的接口方法来访问数据库生成对应的缓存值。
本实施例中,锁定处理模块32判定已存在与接收到的缓存生成锁定请求相同的缓存生成锁定请求时,此时缓存生成处理模块22会收到锁定处理模块32反馈的已被锁定指示,表明已存在其他接口服务器针对相同的用户请求访问数据库所生成对应的缓存值,自身继续等待即可。
本实施例中,缓存服务器3还包括更新模块33,参见图11。缓存生成处理模块22根据接收到的锁定成功指示,调用用户请求对应的接口访问数据库生成缓存值后,更新模块33可以将锁定处理模块32中对应存储锁定的缓存键更新为缓存生成处理模块22生成的缓存值。例如,缓存生成处理模块22生成缓存值1,更新模块33对应的在处理模块32中删除存储锁定的缓存键1,重新写入该缓存值1。
应当理解的是,本实施例中,缓存生成处理模块22在生成对应的缓存值后,缓存服务器3还可以主动通知各对应的接口服务器2,也可以不通知,等待各对应的接口服务器2查询。
本实施例提供的缓存生成控制方法中,接口服务器2和缓存服务器3的具体结构均可参考图1,其中锁定接口模块31、锁定处理模块32、更新模块33、锁定请求模块21和缓存生成处理模块22的功能通过构造于对应缓存服务器3和接口服务器2中的处理器执行实现,锁定接口模块31、锁定处理模块32、更新模块33、锁定请求模块21和缓存生成处理模块22可对应设置于缓存服务器3和接口服务器2中的处理器内。
基于本实施例提供的缓存生成控制系统,当缓存服务器3中的锁定接口模块31接收到高并发请求时,锁定处理模块32会对接收到的缓存生成锁定请求进行一个判断,都会先判断接收到的缓存生成锁定请求是否已存在相同的缓存生成锁定请求,若判断存在,则向对应的接口服务器2反馈该缓存生成锁定请求已被锁定,此时接口服务器2会收到缓存服务器反馈的已被锁定指示,表明已存在其他接口服务器针对相同的用户请求访问数据库生成对应的缓存值,待该缓存值生成后,将之反馈给用户,从而有效缓解了高并发缓存生成锁定请求时,服务器数据库拥堵,性能急剧下降的技术问题。同时,缓存生成处理模块22调用接口访问数据库时,不需等待其余不同的缓存生成锁定请求锁释放,可直接访问,避免了如果某次请求的响应时间过长,锁无法释放,导致到别的请求无法响应的问题。
第五实施例
为减少接口服务器发送的缓存生成锁定请求个数,降低缓存服务器的负担,本实施例在第四实施例和第五实施例的基础上提供了一种接口服务器,其锁定请求模块21还用于:判断是否存在相同用户请求。
当锁定请求模块21判断接收到用户请求中,存在接收到至少两个对应缓存值不存在的相同的用户请求时,针对该相同用户请求向缓存服务器只发送一个缓存生成锁定请求。
应当理解的是,锁定请求模块21根据用户请求可以生成对应的缓存键,本实施例中锁定请求模块21对相同用户请求的判断包括但不限于通过缓存键进行比对。
进一步的,本实施例中,接口服务器2还包括用户请求保存模块23,参见图12,用于在锁定请求模块21针对相同用户请求向缓存服务器发送一个缓存生成锁定请求之后,在该缓存生成锁定请求对应的缓存值生成之前,将相同用户请求的请求线程内容保存到内存中,同时在线程池中将该请求线程释放。
本实施例中,请求线程内容包括:线程栈内容和请求地址等。前述线程栈内容和请求地址用于将保存到内存中的将该相同用户请求恢复到线程池中。
本实施例中,接口服务器2还包括用户请求恢复模块24,参见图12,用于根据保存的线程栈内容和请求地址将保存到内存中的将相同用户请求线程恢复到线程池中。
应当理解的是,本实施例中,为保证内存中的各用户请求不会中断,用户请求恢复模块24需向保存到内存中的各请求线程的请求地址持续发送等待应答消息。例如,通过发送http(超文本传送协议)应答包来保证各用户的请求不会中断。
本实施例提供的接口服务器中,接口服务器2具体结构可参考图1,其中用户请求保存模块23和用户请求恢复模块24的功能可通过设置于接口服务器2上的相应处理器实现,用户请求保存模块23和用户请求恢复模块24可以设置在接口服务器2上的相应处理器内。
基于本实施例提供的接口服务器,对锁定请求模块21接收到多个用户请求时,对相同用户请求进行了筛选,在存在相同用户请求且都不存在对应缓存值时,仅发送一个生成缓存生成锁定请求发送到缓存服务器。在一定程度上避免了在用户请求数量过多时,缓存服务器从同一接口服务器接收到多条相同的缓存生成锁定请求的问题,提升缓存服务器的性能。此时相同用户请求可以保存至内存中,待生成缓存值后恢复。避免了当缓存失效或不存在时,短时间内高并发用户请求可能导致线程池全部被占满,而无法处理其余的用户请求的问题。
第六实施例
为尽可能的减少用户请求对应的缓存值不存在的情况,本实施例在第四实施例和第五实施例的基础上提供了一种缓存生成控制系统。
参照图13,图13为本发明第六实施例提供的一种细化的接口服务器结构示意图,包括:
扫描模块25,用于对所述缓存服务器中各缓存值的有效时间进行扫描。
本实施例中,缓存生成处理模块22还用于在扫描模块25扫描到某一缓存值的剩余有效时间小于预设时间阈值时,获取该缓存值对应的缓存键,根据该缓存键获取对应的接口,调用该接口访问数据库重新生成缓存值写入缓存服务器3。
本实施例中,扫描模块25和缓存生成处理模块22可以实现对已经存在的缓存进行刷新,从而有效减少缓存失效或不存在的次数,避免高请求时,因缓存失效或不存在导致访问数据库的请求过多,造成拥堵的问题。
例如,设一个缓存值的有效时间为30分钟,设定时间阈值为2分钟,扫描模块25发现某个缓存值的有效时间小于2分钟时,缓存生成处理模块22就获取该缓存值对应的缓存键,并根据该缓存键获取对应的接口,调用获取的接口重新生成缓存值写入缓存服务器3,从而保证缓存值不失效。前例中,具体的还可以调用获取的接口中的接口方法来实现重新生成缓存值,写入缓存服务器3。
具体的,扫描模块25在扫描各缓存值时,缓存生成处理模块22可以根据所需要刷新的缓存值找到对应的缓存键,再根据对应的缓存键找到对应的接口及接口方法,缓存生成处理模块22对接口方法进行调用,以生成缓存值,进行刷新。
应当理解的是,本实施例中,缓存生成处理模块22重新生成缓存值包括:调用获取的接口重新生成新的缓存值,同时重新设定该缓存值对应的有效时间。例如,设每个缓存值的有效时间为30分钟,缓存生成处理模块22调用接口1重新生成了缓存值1,则与此同时,对缓存值1重新设定了有效时间为30分钟。
本实施例提供的缓存生成控制系统中,接口服务器2和缓存服务器3的具体结构均可参考图1,其中缓存生成处理模块22和扫描模块25的功能可通过设置于接口服务器2上的相应处理器实现,缓存生成处理模块22和扫描模块25可以设置在接口服务器2上的相应处理器内。
基于本实施例提供的缓存生成控制系统,利用扫描模块25对对缓存服务器3中的各缓存值进行扫描,实现了对缓存值的刷新,有效减少了缓存失效或不存在的次数,从而避免高请求时,因缓存失效或不存在导致访问数据库的请求过多,造成拥堵的问题,利于缓存方案的推广应用。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (13)
1.一种缓存服务器,其特征在于,包括:
锁定接口模块,用于接收接口服务器在用户请求对应的缓存值不存在时发送的缓存生成锁定请求;所述缓存生成锁定请求由所述接口服务器生成;
锁定处理模块,用于判断已存在与所述缓存生成锁定请求相同的缓存生成锁定请求时,向所述接口服务器反馈已被锁定指示;否则,向所述接口服务器反馈锁定成功指示;所述缓存生成锁定请求包含接口服务器根据所述用户请求得到的缓存键;
所述锁定处理模块还用于向所述接口服务器反馈锁定成功指示时,将所述缓存键进行存储锁定,在所述缓存键未被解锁之前,其余相同的缓存键不能被存储锁定。
2.如权利要求1所述的缓存服务器,其特征在于,还包括更新模块,用于收到所述接口服务器反馈的根据所述锁定成功指示访问数据库生成缓存值后,将对应存储锁定的缓存键更新为所述缓存值。
3.一种接口服务器,其特征在于,包括:
锁定请求模块,用于判断接收到的用户请求对应的缓存值不存在时,生成缓存生成锁定请求,并向缓存服务器发送缓存生成锁定请求;
缓存生成处理模块,用于收到所述缓存服务器反馈的已被锁定指示时,等待所述用户请求对应缓存值的生成;以及用于收到所述缓存服务器反馈的锁定成功指示时,调用所述用户请求对应的接口访问数据库生成缓存值,并写入所述缓存服务器。
4.如权利要求3所述的接口服务器,其特征在于,所述接口服务器还包括:
扫描模块,用于对所述缓存服务器中各缓存值的有效时间进行扫描;
所述缓存生成处理模块还用于在所述扫描模块扫描到某一缓存值的剩余有效时间小于预设时间阈值时,获取该缓存值对应的缓存键,根据该缓存键获取对应的接口,调用该接口访问所述数据库重新生成缓存值写入所述缓存服务器。
5.一种缓存生成控制方法,其特征在于,包括:
接收接口服务器在用户请求对应的缓存值不存在时发送的缓存生成锁定请求,所述缓存生成锁定请求由所述接口服务器生成;
判断已存在与接收到的所述缓存生成锁定请求相同的缓存生成锁定请求时,向所述接口服务器反馈已被锁定指示;否则,向所述接口服务器反馈锁定成功指示;所述缓存生成锁定请求包含接口服务器根据所述用户请求得到的缓存键;
向所述接口服务器反馈锁定成功指示时,还包括将所述缓存键进行存储锁定,在所述缓存键未被解锁之前,其余相同的缓存键不能被存储锁定。
6.如权利要求5所述缓存生成控制方法,其特征在于,所述方法还包括:
接收到所述接口服务器反馈的根据所述锁定成功指示访问数据库生成缓存值后,将对应存储锁定的缓存键更新为所述缓存值。
7.如权利要求5或6所述缓存生成控制方法,其特征在于,判断是否存在与当前接收到的缓存生成锁定请求相同的缓存生成锁定请求包括:
判断当前存储锁定的缓存键中是否存在当前接收到的缓存生成锁定请求中的缓存键相同的缓存键。
8.一种缓存生成方法,其特征在于,包括:
判断接收到的用户请求对应的缓存值不存在时,向缓存服务器发送缓存生成锁定请求,所述缓存生成锁定请求由接口服务器生成;
接收到所述缓存服务器反馈的已被锁定指示时,等待所述用户请求对应缓存值的生成;
接收到所述缓存服务器反馈的锁定成功指示时,调用所述用户请求对应的接口访问数据库生成缓存值,并写入所述缓存服务器。
9.如权利要求8所述的缓存生成方法,其特征在于,所述方法还包括:
判断接收到至少两个对应缓存值不存在的相同的用户请求时,针对所述相同用户请求向所述缓存服务器发送一个缓存生成锁定请求。
10.如权利要求9所述的缓存生成方法,其特征在于,所述方法还包括:
针对所述相同用户请求向所述缓存服务器发送一个缓存生成锁定请求后,在该缓存生成锁定请求对应的缓存值生成之前:
将所述相同用户请求之请求线程中的线程栈内容和请求地址保存到内存中;
向所述各请求线程的请求地址持续发送等待应答消息,并在线程池中将所述请求线程释放。
11.如权利要求10所述的缓存生成方法,其特征在于,所述方法还包括:
检测到发送的缓存生成锁定请求对应的缓存值生成;
根据内存中与所述缓存生成锁定请求对应的各请求线程中的线程内容和请求地址,将对应的各请求线程恢复到线程池中,并根据恢复的请求线程将所述缓存值反馈给对应的用户。
12.如权利要求8-11任一项所述的缓存生成方法,其特征在于,所述方法还包括:
对所述缓存服务器中各缓存值的有效时间进行扫描;
扫描到某一缓存值的剩余有效时间小于预设时间阈值时,获取该缓存值对应的缓存键,根据该缓存键获取对应的接口,调用该接口访问所述数据库重新生成缓存值写入所述缓存服务器。
13.如权利要求12所述的缓存生成方法,其特征在于,在扫描到某一缓存值的剩余有效时间小于预设时间阈值后,获取该缓存值对应的缓存键之前,还包括:
判断该缓存值是否为常用缓存值,如否,不获取该缓存值对应的缓存键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610812257.6A CN106453500B (zh) | 2016-09-07 | 2016-09-07 | 缓存生成及控制方法、缓存服务器及接口服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610812257.6A CN106453500B (zh) | 2016-09-07 | 2016-09-07 | 缓存生成及控制方法、缓存服务器及接口服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106453500A CN106453500A (zh) | 2017-02-22 |
CN106453500B true CN106453500B (zh) | 2020-02-11 |
Family
ID=58165342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610812257.6A Active CN106453500B (zh) | 2016-09-07 | 2016-09-07 | 缓存生成及控制方法、缓存服务器及接口服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106453500B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122410A (zh) * | 2017-03-29 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种缓存更新方法及装置 |
CN107436910B (zh) * | 2017-04-14 | 2020-08-18 | 阿里巴巴集团控股有限公司 | 一种数据查询方法和装置 |
CN109471872A (zh) * | 2017-08-30 | 2019-03-15 | 北京国双科技有限公司 | 处理高并发查询请求的方法及装置 |
CN109918191B (zh) * | 2017-12-13 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 一种业务请求防频的方法和装置 |
CN110830378B (zh) * | 2018-08-07 | 2022-05-17 | 迈普通信技术股份有限公司 | 一种地址表项更新方法及交换设备 |
CN109710644A (zh) * | 2018-12-26 | 2019-05-03 | 苏州思必驰信息科技有限公司 | 防止缓存穿透的方法和装置 |
CN110888603B (zh) * | 2019-11-27 | 2024-01-16 | 深圳前海环融联易信息科技服务有限公司 | 高并发数据写入方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729247A (zh) * | 2012-10-12 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 数据获取请求的处理方法、系统及服务器 |
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN105306457A (zh) * | 2015-09-30 | 2016-02-03 | 努比亚技术有限公司 | 数据缓存装置及方法 |
CN105302840A (zh) * | 2014-07-31 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499121B2 (en) * | 2011-08-31 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Methods and apparatus to access data in non-volatile memory |
-
2016
- 2016-09-07 CN CN201610812257.6A patent/CN106453500B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729247A (zh) * | 2012-10-12 | 2014-04-16 | 阿里巴巴集团控股有限公司 | 数据获取请求的处理方法、系统及服务器 |
CN105302840A (zh) * | 2014-07-31 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN105306457A (zh) * | 2015-09-30 | 2016-02-03 | 努比亚技术有限公司 | 数据缓存装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106453500A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106453500B (zh) | 缓存生成及控制方法、缓存服务器及接口服务器 | |
US9882975B2 (en) | Method and apparatus for buffering and obtaining resources, resource buffering system | |
CN100403315C (zh) | 一种实现负荷分担的数据库访问方法及系统 | |
CN103379040A (zh) | 一种高并发系统中控制并发数的装置和方法 | |
JP6582445B2 (ja) | シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム | |
WO2021031905A1 (zh) | 数据管理方法、装置、设备、系统及计算机可读存储介质 | |
US8930518B2 (en) | Processing of write requests in application server clusters | |
CN108920703A (zh) | 一种http缓存优化方法与装置 | |
CN111858588B (zh) | 一种分布式应用索引服务平台及数据处理方法 | |
CN114442912A (zh) | 用于分布式数据储存的方法和设备 | |
CN111240892A (zh) | 数据备份方法及装置 | |
CN103631869A (zh) | 一种缓解服务端数据库访问压力的方法和装置 | |
KR20210040864A (ko) | 파일 디렉터리 순회 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 | |
CN111736776B (zh) | 一种数据存储、读取方法及装置 | |
CN110741617A (zh) | 资源更新方法、装置、计算机设备和存储介质 | |
CN113360577A (zh) | 一种mpp数据库数据处理方法、装置、设备及存储介质 | |
WO2015090194A1 (zh) | 一种实现设备共享的方法和装置 | |
CN113111036A (zh) | 一种基于hdfs的小文件处理方法、装置、介质及电子设备 | |
US7979567B2 (en) | Sharing of subscriptions to resource list content in resource list server | |
CN109033877A (zh) | 一种分布式用户权限处理方法及系统 | |
CN114691703A (zh) | 数据更新方法、装置、电子设备及存储介质 | |
US10365870B2 (en) | Information processing system for detecting overload of a management server and processing a priority request having priority, and information processing method for detecting overload of a management server and processing a priority request having a high priority | |
CN113609460A (zh) | 一种基于用户权限的页面加载方法及系统 | |
US20140280347A1 (en) | Managing Digital Files with Shared Locks | |
CN107209882B (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 |