CN111147599B - 缓存数据的更新方法、装置、服务器及存储介质 - Google Patents
缓存数据的更新方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111147599B CN111147599B CN201911410100.0A CN201911410100A CN111147599B CN 111147599 B CN111147599 B CN 111147599B CN 201911410100 A CN201911410100 A CN 201911410100A CN 111147599 B CN111147599 B CN 111147599B
- Authority
- CN
- China
- Prior art keywords
- cache data
- cache
- updated
- data
- updating
- 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
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Abstract
本申请公开了一种缓存数据的更新方法、装置、服务器及存储介质。该方法包括:业务服务器向缓存总控服务器发送缓存数据更新请求,该缓存数据更新请求包含待更新缓存数据的标识;缓存总控服务器基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据,判断第一缓存数据是否发生更新,在确定第一缓存数据发生更新的情况下,向业务服务器发送第一缓存数据;业务服务器接收第一缓存数据,利用第一缓存数据更新本地缓存。基于本申请公开的技术方案,能够提高业务服务器的稳定性和数据的实时性。
Description
技术领域
本发明属于互联网技术领域,尤其涉及一种缓存数据的更新方法、访问控制方法、装置、服务器及存储介质。
背景技术
业务服务器(如移动后端服务器和web服务器)的主要功能是提供数据接口,每天都面临着千万级别的访问量。业务服务器配置有本地缓存,通常采用缓存过期时间来控制本地缓存的更新。业务服务器在接收到客户端的访问请求时,首先在本地缓存中查找,如果本地缓存有请求的数据,那么直接向客户端返回数据,如果本地缓存没有请求的数据,那么从第三方数据提供方读取数据,并向客户端返回数据。
可以看到,现有的业务服务器除了需要提供海量的访问服务之外,还负责本地缓存的更新。为了保证客户端能够获得正确的数据,业务服务器需要频繁地对本地缓存进行更新,这给业务服务器带来很大的压力,导致业务服务器的稳定性较差。
发明内容
有鉴于此,本发明的目的在于提供一种缓存数据的更新方法及装置,以提高业务服务器的稳定性和数据的实时性。
为实现上述目的,本发明提供如下技术方案:
一方面,本申请提供一种缓存数据的更新方法,包括:
业务服务器向缓存总控服务器发送缓存数据更新请求,所述缓存数据更新请求基于访问请求生成,所述缓存数据更新请求包含待更新缓存数据的标识;
所述缓存总控服务器接收所述缓存数据更新请求,基于所述待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
所述缓存总控服务器判断所述第一缓存数据是否发生更新;
所述缓存总控服务器在确定所述第一缓存数据发生更新的情况下,向所述业务服务器发送所述第一缓存数据;
所述业务服务器接收所述第一缓存数据,利用所述第一缓存数据更新本地缓存。
另一方面,本申请提供一种缓存数据的更新方法,所述方法执行于缓存总控服务器,所述方法包括:
接收缓存数据更新请求,所述缓存数据更新请求由业务服务器生成,所述缓存数据更新请求包含待更新缓存数据的标识;
基于所述待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
判断所述第一缓存数据是否发生更新;
在确定所述第一缓存数据发生更新的情况下,向所述业务服务器发送所述第一缓存数据。
可选的,所述判断所述第一缓存数据是否发生更新,包括:
基于所述待更新缓存数据的标识从预设存储区域获取对应的第二缓存数据;
比对从所述预设数据库获取的第一缓存数据和从所述预设存储区域获取的第二缓存数据,若所述第一缓存数据和所述第二缓存数据不一致,则确定所述第一缓存数据发生更新,并将所述第一缓存数据存储至所述预设存储区域。
可选的,所述判断所述第一缓存数据是否发生更新,包括:
确定所述第一缓存数据的第一校验信息;
基于所述待更新缓存数据的标识从预设存储区域获取对应的第二校验信息;
比对所述第一校验信息和所述第二校验信息,若所述第一校验信息和所述第二校验信息不一致,则确定所述第一缓存数据发生更新,并将所述第二校验信息存储至所述预设存储区域。
可选的,在上述方法的基础上,还包括:
在确定所述第一缓存数据发生更新的情况下,向与所述业务服务器属于同一服务器集群的其他业务服务器发送所述第一缓存数据。
另一方面,本申请提供一种访问控制方法,所述方法执行于业务服务器,所述方法包括:
接收访问请求,所述访问请求由客户端生成;
获取与所述访问请求对应的应答数据,向所述客户端发送所述应答数据;
根据所述访问请求生成缓存数据更新请求,所述缓存数据更新请求包含待更新缓存数据的标识;
向缓存总控服务器发送所述缓存数据更新请求;
接收所述缓存总控服务器发送的缓存数据,利用所述缓存数据更新本地缓存;
其中,所述缓存数据由缓存总控服务器基于所述待更新缓存数据的标识从预设数据库获取,且在所述缓存数据发生更新时向所述业务服务器发送。
可选的,在接收访问请求之后,还包括:
确定当前的运行模式,其中所述业务服务器的运行模式包括第一模式和第二模式;
如果当前的运行模式为第一模式,则执行根据所述访问请求生成缓存数据更新请求的步骤。
另一方面,本申请提供一种缓存数据的更新装置,布置于缓存总控服务器,所述更新装置包括:
更新请求获取单元,用于接收缓存数据更新请求,所述缓存数据更新请求由业务服务器生成,所述缓存数据更新请求包含待更新缓存数据的标识;
缓存数据获取单元,用于基于所述待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
判断单元,用于判断所述第一缓存数据是否发生更新;
处理单元,用于在确定所述第一缓存数据发生更新的情况下,向所述业务服务器发送所述第一缓存数据。
另一方面,本申请提供一种访问控制装置,布置于业务服务器,所述访问控制装置包括:
访问请求接收单元,用于接收访问请求,所述访问请求由客户端生成;
应答单元,用于获取与所述访问请求对应的应答数据,向所述客户端发送所述应答数据;
更新请求生成单元,用于根据所述访问请求生成缓存数据更新请求,所述缓存数据更新请求包含待更新缓存数据的标识;
更新请求发送单元,用于向缓存总控服务器发送所述缓存数据更新请求;
缓存更新单元,用于接收所述缓存总控服务器发送的缓存数据,利用所述缓存数据更新本地缓存;
其中,所述缓存数据由缓存总控服务器基于所述待更新缓存数据的标识从预设数据库获取,且在所述缓存数据发生更新时向所述业务服务器发送。
另一方面,本申请提供一种缓存总控服务器,包括处理器、存储器和通信接口;
所述存储器用于存储程序;
所述处理器用于调用并执行所述存储器中存储的程序,以执行如上所述的缓存数据的更新方法。
另一方面,本申请提供一种业务服务器,包括处理器、存储器和通信接口;
所述存储器用于存储程序;
所述处理器用于调用并执行所述存储器中存储的程序,以执行如上所述的访问控制方法。
另一方面,本申请提供一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的缓存数据的更新方法,或者实现如上所述的访问控制方法。
由此可见,本发明的有益效果为:
本申请公开的缓存数据的更新方法,缓存总控服务器接收到业务服务器(移动后端服务器或者web服务器)发送的缓存数据更新请求时,从预设数据库获取与该请求携带的待更新缓存数据的标识对应的缓存数据,如果获取到的缓存数据发生更新,那么向业务服务器发送该缓存数据,以便业务服务器更新本地缓存。
可以看到,本申请公开的缓存数据的更新方法,利用缓存总控服务器实现对业务服务器中本地缓存的更新,业务服务器只需要向缓存总控服务器发送缓存数据更新请求,并在接收到缓存总控服务器发送的缓存数据时,对本地缓存进行更新,而不需要监控缓存数据是否过期,从而减小业务服务器面临的更新本地缓存的压力,使得业务服务器能够专注于响应客户端的访问,能够提高业务服务器的稳定性;另外,当数据有更新时,缓存总控服务器会立即向业务服务器发送更新后的数据,由业务服务器更新本地缓存,这与现有技术中业务服务器采用缓存过期时间控制本地缓存的更新相比,能够防止发生业务服务器由于缓存数据未到达过期时间而持续向客户端发送实际已过期数据这种情况,能够提高数据的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种缓存数据的更新方法的信令图;
图2为本申请公开的一种应用于缓存总控服务器的缓存数据的更新方法的流程图;
图3为本申请公开的另一种应用于缓存总控服务器的缓存数据的更新方法的流程图;
图4为本申请公开的又一种应用于缓存总控服务器的缓存数据的更新方法的流程图;
图5为本申请公开的又一种应用于缓存总控服务器的缓存数据的更新方法的流程图;
图6为本申请公开的一种应用于业务服务器的访问控制方法的流程图;
图7为本申请公开的一种应用于缓存总控服务器的缓存数据的更新装置的结构示意图;
图8为本申请公开的一种应用于业务服务器的访问控制装置的结构示意图;
图9为本申请公开的一种缓存总控服务器的硬件结构图;
图10为本申请公开的一种业务服务器的硬件结构图;
图中,100为业务服务器,200为缓存总控服务器。
具体实施方式
现有技术中,业务服务器采用缓存过期时间来控制本地缓存的更新,由于业务服务器需要提供访问服务,还需要对本地缓存的更新进行控制,为了使得业务服务器能稳定运行,业务服务器要将本地缓存的过期时间设置为较大的数值。这导致极易出现以下情况:数据源中的数据已经发生更新,但业务服务器的本地缓存中的缓存数据未达到设置的过期时间,因此业务服务器不会更新本地缓存,导致本地缓存中的缓存数据实际已过期,业务服务器向客户端发送的是实际已过期数据,数据的实时性较差。也就是说,现有的业务服务器在系统稳定性和数据实时性这两方面是无法同时保证的。
本申请公开一种缓存数据的更新方法及装置,通过缓存总控服务器实现业务服务器中缓存数据的更新,可以提高业务服务器的稳定性,并提高数据的实时性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1为本申请公开的一种缓存数据的更新方法的信令图。该更新方法包括:
步骤S101:业务服务器向缓存总控服务器发送缓存数据更新请求。
业务服务器为移动后端服务器或者web服务器。移动后端服务器用于向移动客户端提供访问服务。Web服务器用于向PC客户端提供访问服务。
缓存数据更新请求由业务服务器基于访问请求生成,该访问请求由客户端向业务服务器发送,该缓存数据更新请求包含待更新缓存数据的标识。
步骤S102:缓存总控服务器接收缓存数据更新请求,基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据。
步骤S103:缓存总控服务器判断第一缓存数据是否发生更新。
步骤S104:缓存总控服务器在确定第一缓存数据发生更新的情况下,向业务服务器发送第一缓存数据。
步骤S105:业务服务器接收第一缓存数据,利用第一缓存数据更新本地缓存。
本申请公开的缓存数据的更新方法,缓存总控服务器接收到业务服务器发送的缓存数据更新请求时,从预设数据库获取与该请求携带的待更新缓存数据的标识对应的缓存数据,如果获取到的缓存数据发生更新,那么向业务服务器发送该缓存数据,以便业务服务器更新本地缓存。
需要说明的是,业务服务器更新本地缓存是指:如果本地缓存存储有该标识与数据的映射关系,那么利用接收到的第一缓存数据更新该映射关系中的数据;如果本地缓存未存储包含该标识的映射关系,那么将该标识与第一缓存数据的映射关系写入本地缓存。
可以看到,本申请公开的缓存数据的更新方法,利用缓存总控服务器实现对业务服务器中本地缓存的更新,业务服务器只需要向缓存总控服务器发送缓存数据更新请求,并在接收到缓存总控服务器发送的缓存数据时,对本地缓存进行更新,而不需要监控缓存数据是否过期,从而减小业务服务器面临的更新本地缓存的压力,使得业务服务器能够专注于响应客户端的访问,能够提高业务服务器的稳定性;另外,当数据有更新时,缓存总控服务器会立即向业务服务器发送更新后的数据,由业务服务器更新本地缓存,这与现有技术中业务服务器采用缓存过期时间控制本地缓存的更新相比,能够防止发生业务服务器由于缓存数据未到达过期时间而持续向客户端发送实际已过期数据这种情况,能够提高数据的实时性。
下面以缓存总控服务器的角度,对本申请公开的缓存数据的更新方法做更具体的介绍。
请参见图2,图2为本申请公开的一种应用于缓存总控服务器的缓存数据的更新方法的流程图。该更新方法包括:
步骤S201:接收缓存数据更新请求。
需要说明的是,该缓存数据更新请求由业务服务器生成,该缓存数据更新请求包含待更新缓存数据的标识。
步骤S202:基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据。
需要说明的是,本申请中的预设数据库布置于缓存总控服务器之外的其他设备。例如,该预设数据库为分布式存储系统中的数据库,缓存总控服务器从分布式存储系统中的预设数据库获取与该标识对应的缓存数据。
为了便于描述,将缓存总控服务器本次从预设数据库获取的与待更新缓存数据的标识对应的缓存数据称为第一缓存数据。
步骤S203:判断第一缓存数据是否发生更新。
步骤S204:在确定第一缓存数据发生更新的情况下,向业务服务器发送第一缓存数据。
缓存总控服务器从预设数据库获取待更新缓存数据的标识对应的缓存数据后,需要进一步判断该缓存数据是否发生更新,如果缓存数据发生更新,就将本次获取到的缓存数据向业务服务器发送,如果缓存数据未发生更新,那么结束流程,不再向业务服务器发送。
本申请图2所示的缓存数据的更新方法,缓存总控服务器接收到业务服务器发送的缓存数据更新请求时,从预设数据库获取与该请求携带的待更新缓存数据的标识对应的缓存数据,如果获取到的缓存数据发生更新,那么向业务服务器发送该缓存数据,以便业务服务器更新本地缓存。本申请图2所示的缓存数据的更新方法,利用缓存总控服务器实现对业务服务器中本地缓存的更新,业务服务器只需要向缓存总控服务器发送缓存数据更新请求,并在接收到缓存总控服务器发送的缓存数据时,对本地缓存进行更新,而不需要监控缓存数据是否过期,从而减小业务服务器面临的更新本地缓存的压力,使得业务服务器能够专注于响应客户端的访问,能够提高业务服务器的稳定性。另外,当数据有更新时,缓存总控服务器会立即向业务服务器发送更新后的数据,由业务服务器更新本地缓存,这与现有技术中业务服务器采用缓存过期时间控制本地缓存的更新相比,能够防止发生业务服务器由于缓存数据未到达过期时间而持续向客户端发送实际已过期数据这种情况,能够提高数据的实时性。
实施中,缓存总控服务器判断第一缓存数据是否发生更新,可以采用多种方案实现。下面分别结合图3和图4进行说明。
请参见图3,图3为本申请公开的另一种应用于缓存总控服务器的缓存数据的更新方法的流程图。该更新方法包括:
步骤S301:接收缓存数据更新请求。该缓存数据更新请求包含待更新缓存数据的标识。
步骤S302:基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据。
步骤S303:基于待更新缓存数据的标识从预设存储区域获取对应的第二缓存数据。
需要说明的是,预设存储区域可以视为缓存总控服务器的本地存储区或者备份存储区。
还需要说明的是,步骤S302和步骤S303的顺序并非限定于图3所示,二者的顺序可以调换。
步骤S304:比对第一缓存数据和第二缓存数据。
步骤S305:若第一缓存数据和第二缓存数据不一致,则确定第一缓存数据发生更新。
步骤S306:在确定第一缓存数据发生更新的情况下,将第一缓存数据存储至预设存储区域,并向业务服务器发送第一缓存数据。
第一缓存数据是缓存总控服务器本次从预设数据库获取的与待更新缓存数据的标识对应的缓存数据。第二缓存数据是缓存总控服务器从预设存储区域获取的与待更新缓存数据的标识对应的缓存数据,也就是,前一次从预设数据库获取到与待更新缓存数据的标识对应的缓存数据,且确定该缓存数据发生更新时存储至预设存储区域的。如果两者不一致,表明缓存数据发生更新,需要向业务服务器发送第一缓存数据,由业务服务器更新本地缓存,并将第一缓存数据存储至预设存储区域,替代第二缓存数据。如果两者一致,表明缓存数据未发生更新,结束流程。
这里对上述过程举例说明。
例如,缓存总控服务器根据待更新缓存数据的标识从预设数据库获取的第一缓存数据为“dd”、根据待更新缓存数据的标识从预设存储区域获取的第二缓存数据为“ddz”,第一缓存数据“dd”与第二缓存数据“ddz”不同,缓存总控服务器确定第一缓存数据发生更新,将第一缓存数据“dd”发送给业务服务器,由业务服务器更新本地缓存。另外,缓存总控服务器将第一缓存数据“dd”存储至预设存储区域,也就是说,缓存总控服务器的预设存储区域中,与该待更新缓存数据的标识对应的缓存数据由“ddz”替换为“dd”。
需要说明的是,“dd”和“ddz”仅是一个举例,实际应用中,从预设数据库和从预设存储区域获取到的缓存数据为更加复杂的数据。
本申请图3所示的缓存数据的更新方法,缓存总控服务器接收业务服务器发送的缓存数据更新请求,基于该请求携带的待更新缓存数据的标识从预设数据库获取与该标识对应的第一缓存数据、从预设存储区域获取与该标识对应的第二缓存数据,通过对第一缓存数据与第二缓存数据进行比较,判断第一缓存数据是否发生更新,在确定发生更新的情况下向业务服务器发送第一缓存数据,以便业务服务器利用该第一缓存数据更新本地缓存,还将第一缓存数据存储至预设存储区域,作为下次判断缓存数据是否发生更新的依据。基于本申请图3所示的缓存数据的更新方法,通过缓存总控服务器对业务服务器的本地缓存进行更新,有利于业务服务器专注于客户端的访问,使得业务服务器的运行更加高效稳定,同时能够提高数据的实时性。
本申请还公开一种应用于缓存总控服务器的缓存数据的更新方法,请参见图4。该更新方法包括:
步骤S401:接收缓存数据更新请求。该缓存数据更新请求包含待更新缓存数据的标识。
步骤S402:基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据。
步骤S403:确定第一缓存数据的第一校验信息。
步骤S404:基于待更新缓存数据的标识从预设存储区域获取对应的第二校验信息。
为了便于描述,将第一缓存数据的校验信息称为第一校验信息,将从预设存储区域获取的与待更新缓存数据的标识对应的校验信息称为第二校验信息。
需要说明的是,本申请中的校验信息可以是利用摘要算法对缓存数据进行计算得到的消息摘要。例如采用MD算法(Message DigestAlgorithm,消息摘要算法)对缓存数据进行计算得到消息摘要。
还需要说明的是,步骤S404并不限定于S403之后,只要在步骤S401之后执行即可。
步骤S405:比对第一校验信息和第二校验信息。
步骤S406:若第一校验信息和第二校验信息不一致,则确定第一缓存数据发生更新。
步骤S407:在确定第一缓存数据发生更新的情况下,将第二校验信息存储至预设存储区域,并向业务服务器发送第一缓存数据。
这里提供了判断第一缓存数据是否发生更新的另一种方法。
第一校验信息是缓存总控服务器本次从预设数据库获取的第一缓存数据的校验信息。第二校验信息是缓存总控服务器从预设存储区域获取的与待更新缓存数据的标识对应的校验信息,第二校验信息是前一次从预设数据库获取到与待更新缓存数据的标识对应的缓存数据,且确定该缓存数据发生更新时存储至预设存储区域的。如果两者不一致,表明缓存数据发生更新,需要向业务服务器发送第一缓存数据,由业务服务器更新本地缓存,并将第一校验信息存储至预设存储区域,替代第二校验信息。如果两者一致,表明缓存数据未发生更新,结束流程。
这里以具体例子对上述过程做进一步解释。
例如,缓存总控服务器根据待更新缓存数据的标识从预设数据库获取第一缓存数据,确定第一缓存数据的第一校验信息为H1,缓存总控服务器根据待更新缓存数据的标识从预设存储区域获取的第二校验信息为H2,第一校验信息H1和第二校验信息H2不同,缓存总控服务器确定第一缓存数据发生更新,将第一缓存数据发送给业务服务器,由业务服务器更新本地缓存。另外,缓存总控服务器将第一校验信息H1存储至预设存储区域,也就是说,缓存总控服务器的预设存储区域中,与该待更新缓存数据的标识对应的校验信息由H1替换为H2。
本申请图4所示的缓存数据的更新方法,缓存总控服务器接收业务服务器发送的缓存数据更新请求,基于该请求携带的待更新缓存数据的标识从预设数据库获取与该标识对应的第一缓存数据,确定第一缓存数据的第一校验信息,从预设存储区域获取与该待更新缓存数据的标识对应的第二校验信息,通过对第一校验信息和第二校验信息进行比较,判断第一缓存数据是否发生更新,在确定发生更新的情况下向业务服务器发送第一缓存数据,以便业务服务器利用该第一缓存数据更新本地缓存,还将第一校验信息存储至预设存储区域,作为下次判断缓存数据是否发生更新的依据。基于本申请图4所示的缓存数据的更新方法,通过缓存总控服务器对业务服务器的本地缓存进行更新,有利于业务服务器专注于客户端的访问,使得业务服务器的运行更加高效稳定,同时能够提高数据的实时性。另外,存储校验信息所需的存储空间远小于存储缓存数据所需的存储空间,与图3所示的方法相比,能够减小缓存总控服务器所需的存储空间。
进一步地,本申请还公开一种应用于缓存总控服务器的缓存数据的更新方法,参见图5。该更新方法包括:
步骤S501:接收缓存数据更新请求。
步骤S502:基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据。
步骤S503:判断第一缓存数据是否发生更新。
步骤S504:在确定第一缓存数据发生更新的情况下,向业务服务器发送第一缓存数据。
需要说明的是,判断第一缓存数据是否发生更新,采用前文中公开的方案,此处不再赘述。
步骤S505:在确定第一缓存数据发生更新的情况下,向与业务服务器属于同一服务器集群的其他业务服务器发送第一缓存数据。
本申请图5所示的缓存数据的更新方法,缓存总控服务器在确定第一缓存数据发生更新的情况下,除了向发送缓存数据更新请求的业务服务器发送第一缓存数据之外,还向与该业务服务器属于同一服务器集群的其他业务服务器发送第一缓存数据,从而保证同一服务器集群中的各个业务服务器的缓存数据具有一致性。
在另一个实施例中,在基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据后,还可以对第一缓存数据进行有效性验证,在确定第一缓存数据为有效数据的情况下,再判断第一缓存数据是否发生更新。
以上从缓存总控服务器的角度对本申请公开的缓存数据的更新方法进行了介绍,这里再以业务服务器的角度对本申请公开的访问控制方法进行说明。
请参见图6,图6为本申请公开的一种应用于业务服务器的访问控制方法的流程图。该方法包括:
步骤S601:接收访问请求。
其中,访问请求由客户端生成。
步骤S602:获取与访问请求对应的应答数据,向客户端发送应答数据。
在一种实施方式中,业务服务器在本地缓存查找与访问请求对应的数据,将在本地缓存中查找到的数据作为该访问请求的应答数据。
进一步的,如果业务服务器在本地缓存未查找到与访问请求对应的数据,那么从预设数据库查找与该访问请求对应的数据,将查找到的数据作为应答数据。
步骤S603:根据访问请求生成缓存数据更新请求。
其中,缓存数据更新请求包含待更新缓存数据的标识。
需要说明的是,待更新缓存数据的标识(Key)是字符串类型,能够唯一的标记待更新缓存数据,可以基于对象的toString方法生成待更新缓存数据的标识。
例如:
最终生成的Key就是:key.toString()=a_1_b_2_c_3
步骤S604:向缓存总控服务器发送缓存数据更新请求。
步骤S605:接收缓存总控服务器发送的缓存数据,利用缓存数据更新本地缓存。
本申请图6所示的访问控制方法,业务服务器接收到访问请求后,一方面获取与该访问请求对应的应答数据,向客户端发送应答数据,另一方面基于访问请求生成缓存数据更新请求,并发送该缓存数据更新请求至缓存总控服务器,在接收到缓存总控服务器发送的、与待更新缓存数据的标识对应的发生更新的缓存数据时,利用该缓存数据更新本地缓存。基于本申请图6所示的访问控制方法,业务服务器利用缓存总控服务器来实现对自身本地缓存的更新,减小业务服务器面临的更新本地缓存的压力,使得业务服务器能够专注于响应客户端的访问,能够提高业务服务器的稳定性,并且还可以提高数据的实时性。
在另一个实施例中,业务服务器的运行模式包括第一模式和第二模式。业务服务器在接收访问请求后,进一步确定当前的运行模式,如果当前的运行模式为第一模式,那么执行根据访问请求生成缓存数据更新请求的步骤及后续步骤。
也就是说,如果业务服务器运行于第一模式,那么业务服务器在接收到访问请求后,会根据访问请求生成缓存数据更新请求,并向缓存总控服务器发送该缓存数据更新请求,以便通过缓存总控服务器实现本地缓存的更新。如果业务服务器运行于第二模式,那么业务服务器可以采用其他机制进行本地缓存的更新。例如,业务服务器基于缓存过期时间来控制本地缓存的更新。
也就是说,缓存总控服务器支持热插拔功能,业务服务器可以通过切换运行模式选择是否通过缓存总控服务器实现本地缓存的更新。
在一个可能的实现方式中,业务服务器可以响应控制指令切换运行模式。例如,由技术人员输入控制指令,从而控制业务服务器运行于第一模式,或者运行于第二模式。
在另一个可能的实现方式中,业务服务器可以根据与缓存总控服务器之间的连接状态切换运行模式。例如,业务服务器与缓存总控服务器之间的连接被断开,那么业务服务器切换至第二模式,如果业务服务器与缓存总控服务器之间建立连接,那么业务服务器切换至第一模式。
本申请上述公开了应用于缓存总控服务器的缓存数据的更新方法,相应的,本申请还公开一种应用于缓存总控服务器的缓存数据的更新装置,说明书中关于两者的描述可以相互参考。
请参见图7,图7为本申请公开的一种应用于缓存总控服务器的缓存数据的更新装置的结构示意图。该更新装置包括更新请求获取单元701、缓存数据获取单元702、判断单元703和处理单元704。
更新请求获取单元701用于:接收缓存数据更新请求,该缓存数据更新请求由业务服务器生成,该缓存数据更新请求包含待更新缓存数据的标识。
缓存数据获取单元702用于:基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据。
判断单元703用于:判断第一缓存数据是否发生更新。
处理单元704用于:在确定第一缓存数据发生更新的情况下,向业务服务器发送第一缓存数据。
在一个实施例中,判断单元702具体用于:基于待更新缓存数据的标识从预设存储区域获取对应的第二缓存数据;比对从预设数据库获取的第一缓存数据和从预设存储区域获取的第二缓存数据,若第一缓存数据和第二缓存数据不一致,则确定第一缓存数据发生更新。处理单元704还用于:将第一缓存数据存储至该预设存储区域。
在另一个实施例中,判断单元702具体用于:确定第一缓存数据的第一校验信息;基于待更新缓存数据的标识从预设存储区域获取对应的第二校验信息;比对第一校验信息和第二校验信息,若第一校验信息和第二校验信息不一致,则确定第一缓存数据发生更新。处理单元704还用于:将第二校验信息存储至该预设存储区域。
在另一个实施例中,处理单元704还用于:在确定第一缓存数据发生更新的情况下,向与业务服务器属于同一服务器集群的业务服务器发送第一缓存数据。
本申请上述公开了应用于业务服务器的访问控制方法,相应的,本申请还公开一种应用于业务服务器的访问控制装置,说明书中关于两者的描述可以相互参考。
请参见图8,图8为本申请公开的一种应用于业务服务器的访问控制装置的结构示意图。该装置包括访问请求接收单元801、应答单元802、更新请求生成单元803、更新请求发送单元804和缓存更新单元805。
访问请求接收单元801用于:接收访问请求,该访问请求由客户端生成。
应答单元802用于:获取与访问请求对应的应答数据,向客户端发送应答数据。
更新请求生成单元803用于:根据访问请求生成缓存数据更新请求,缓存数据更新请求包含待更新缓存数据的标识。
更新请求发送单元804用于:向缓存总控服务器发送缓存数据更新请求。
缓存更新单元805用于:接收缓存总控服务器发送的缓存数据,利用缓存数据更新本地缓存。
其中,该缓存数据由缓存总控服务器基于待更新缓存数据的标识从预设数据库获取,且在缓存数据发生更新时向业务服务器发送。
可选的,在图8所示装置的基础上,还包括:运行模式确定单元。该运行模式确定单元用于:在访问请求接收单元801接收访问请求后,确定当前的运行模式,如果当前的运行模式为第一模式,则触发更新请求生成单元803执行根据访问请求生成缓存数据更新请求的操作。
本申请还公开一种缓存总控服务器。
请参见图9,图9为本申请公开的一种缓存总控服务器的硬件结构图。该缓存总控服务器可以包括处理器901、存储器902和通信接口903。
可选的,该缓存总控服务器还可以包括输入单元904、显示器905和通信总线906。其中,处理器901、存储器902、通信接口903、输入单元904和显示器905均通过通信总线906完成相互间的通信。
处理器901可以调用并执行存储器902中存储的程序。
存储器902中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令。在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
接收缓存数据更新请求,该缓存数据更新请求由业务服务器生成,该缓存数据更新请求包含待更新缓存数据的标识;
基于待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
判断第一缓存数据是否发生更新;
在确定第一缓存数据发生更新的情况下,向业务服务器发送第一缓存数据。
本申请还公开一种业务服务器。
请参见图10,图10为本申请公开的一种业务服务器的硬件结构图。该业务服务器可以包括处理器1001、存储器1002和通信接口1003。
可选的,该业务服务器还可以包括输入单元1004、显示器1005和通信总线1006。其中,处理器1001、存储器1002、通信接口1003、输入单元1004和显示器1005均通过通信总线1006完成相互间的通信。
处理器1001可以调用并执行存储器1002中存储的程序。
存储器1002中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令。在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
接收访问请求,该访问请求由客户端生成;
获取与访问请求对应的应答数据,向客户端发送应答数据;
根据访问请求生成缓存数据更新请求,该缓存数据更新请求包含待更新缓存数据的标识;
向缓存总控服务器发送缓存数据更新请求;
接收缓存总控服务器发送的缓存数据,利用缓存数据更新本地缓存;
其中,该缓存数据由缓存总控服务器基于待更新缓存数据的标识从预设数据库获取,且在缓存数据发生更新时向业务服务器发送。
本申请还公开一种存储介质。该存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器加载并执行时,实现本申请上述公开的任意一种缓存数据的更新方法或者任意一种访问控制方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、服务器和存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种缓存数据的更新方法,其特征在于,包括:
业务服务器向缓存总控服务器发送缓存数据更新请求,所述缓存数据更新请求基于访问请求生成,所述缓存数据更新请求包含待更新缓存数据的标识;
所述缓存总控服务器接收所述缓存数据更新请求,基于所述待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
所述缓存总控服务器判断所述第一缓存数据是否发生更新;
所述缓存总控服务器在确定所述第一缓存数据发生更新的情况下,向所述业务服务器发送所述第一缓存数据;
所述业务服务器接收所述第一缓存数据,利用所述第一缓存数据更新本地缓存。
2.一种缓存数据的更新方法,其特征在于,所述方法执行于缓存总控服务器,所述方法包括:
接收缓存数据更新请求,所述缓存数据更新请求由业务服务器生成,所述缓存数据更新请求包含待更新缓存数据的标识;
基于所述待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
判断所述第一缓存数据是否发生更新;
在确定所述第一缓存数据发生更新的情况下,向所述业务服务器发送所述第一缓存数据。
3.根据权利要求2所述的方法,其特征在于,所述判断所述第一缓存数据是否发生更新,包括:
基于所述待更新缓存数据的标识从预设存储区域获取对应的第二缓存数据;
比对从所述预设数据库获取的第一缓存数据和从所述预设存储区域获取的第二缓存数据,若所述第一缓存数据和所述第二缓存数据不一致,则确定所述第一缓存数据发生更新,并将所述第一缓存数据存储至所述预设存储区域。
4.根据权利要求2所述的方法,其特征在于,所述判断所述第一缓存数据是否发生更新,包括:
确定所述第一缓存数据的第一校验信息;
基于所述待更新缓存数据的标识从预设存储区域获取对应的第二校验信息;
比对所述第一校验信息和所述第二校验信息,若所述第一校验信息和所述第二校验信息不一致,则确定所述第一缓存数据发生更新,并将所述第二校验信息存储至所述预设存储区域。
5.根据权利要求2至4中任一项所述的方法,其特征在于,还包括:
在确定所述第一缓存数据发生更新的情况下,向与所述业务服务器属于同一服务器集群的其他业务服务器发送所述第一缓存数据。
6.一种访问控制方法,其特征在于,所述方法执行于业务服务器,所述方法包括:
接收访问请求,所述访问请求由客户端生成;
获取与所述访问请求对应的应答数据,向所述客户端发送所述应答数据;
根据所述访问请求生成缓存数据更新请求,所述缓存数据更新请求包含待更新缓存数据的标识;
向缓存总控服务器发送所述缓存数据更新请求;
接收所述缓存总控服务器发送的缓存数据,利用所述缓存数据更新本地缓存;
其中,所述缓存数据由缓存总控服务器基于所述待更新缓存数据的标识从预设数据库获取,且在所述缓存数据发生更新时向所述业务服务器发送。
7.根据权利要求6所述的方法,其特征在于,在接收访问请求之后,还包括:
确定当前的运行模式,其中所述业务服务器的运行模式包括第一模式和第二模式;
如果当前的运行模式为第一模式,则执行根据所述访问请求生成缓存数据更新请求的步骤。
8.一种缓存数据的更新装置,其特征在于,布置于缓存总控服务器,所述更新装置包括:
更新请求获取单元,用于接收缓存数据更新请求,所述缓存数据更新请求由业务服务器生成,所述缓存数据更新请求包含待更新缓存数据的标识;
缓存数据获取单元,用于基于所述待更新缓存数据的标识从预设数据库获取对应的第一缓存数据;
判断单元,用于判断所述第一缓存数据是否发生更新;
处理单元,用于在确定所述第一缓存数据发生更新的情况下,向所述业务服务器发送所述第一缓存数据。
9.一种访问控制装置,其特征在于,布置于业务服务器,所述访问控制装置包括:
访问请求接收单元,用于接收访问请求,所述访问请求由客户端生成;
应答单元,用于获取与所述访问请求对应的应答数据,向所述客户端发送所述应答数据;
更新请求生成单元,用于根据所述访问请求生成缓存数据更新请求,所述缓存数据更新请求包含待更新缓存数据的标识;
更新请求发送单元,用于向缓存总控服务器发送所述缓存数据更新请求;
缓存更新单元,用于接收所述缓存总控服务器发送的缓存数据,利用所述缓存数据更新本地缓存;
其中,所述缓存数据由缓存总控服务器基于所述待更新缓存数据的标识从预设数据库获取,且在所述缓存数据发生更新时向所述业务服务器发送。
10.一种缓存总控服务器,其特征在于,包括处理器、存储器和通信接口;
所述存储器用于存储程序;
所述处理器用于调用并执行所述存储器中存储的程序,以执行如权利要求2至5中任一项所述的缓存数据的更新方法。
11.一种业务服务器,其特征在于,包括处理器、存储器和通信接口;
所述存储器用于存储程序;
所述处理器用于调用并执行所述存储器中存储的程序,以执行如权利要求6或7所述的缓存数据的更新方法。
12.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述权利要求2至5中任一项所述的缓存数据的更新方法,或者实现如上述权利要求6或7所述的访问控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911410100.0A CN111147599B (zh) | 2019-12-31 | 2019-12-31 | 缓存数据的更新方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911410100.0A CN111147599B (zh) | 2019-12-31 | 2019-12-31 | 缓存数据的更新方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147599A CN111147599A (zh) | 2020-05-12 |
CN111147599B true CN111147599B (zh) | 2022-04-26 |
Family
ID=70522492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911410100.0A Active CN111147599B (zh) | 2019-12-31 | 2019-12-31 | 缓存数据的更新方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147599B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563092B (zh) * | 2020-05-15 | 2023-12-22 | 中国银行股份有限公司 | 公共业务数据更新方法及装置 |
CN111639088B (zh) * | 2020-05-29 | 2023-03-21 | 携程计算机技术(上海)有限公司 | 本地缓存的更新系统、方法、电子设备和存储介质 |
CN113779082A (zh) * | 2021-01-05 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 一种更新数据的方法和装置 |
CN114143376A (zh) * | 2021-11-18 | 2022-03-04 | 青岛聚看云科技有限公司 | 一种用于加载缓存的服务器、显示设备及资源播放方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000307593A (ja) * | 1999-04-19 | 2000-11-02 | Fujitsu Ltd | Mpoaキャッシュ管理装置及びその方法 |
CN107133234A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 缓存数据更新的方法、装置及系统 |
CN109190070A (zh) * | 2018-08-01 | 2019-01-11 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、系统及应用服务器 |
CN109582684A (zh) * | 2018-11-30 | 2019-04-05 | 深圳市盟天科技有限公司 | 一种本地缓存数据的更新方法、装置、服务器及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001294677A1 (en) * | 2000-09-22 | 2002-04-02 | Patchlink.Com Corporation | Non-invasive automatic offsite patch fingerprinting and updating system and method |
CN103780636B (zh) * | 2012-10-17 | 2018-02-27 | 阿里巴巴集团控股有限公司 | 一种缓存数据处理方法和系统 |
-
2019
- 2019-12-31 CN CN201911410100.0A patent/CN111147599B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000307593A (ja) * | 1999-04-19 | 2000-11-02 | Fujitsu Ltd | Mpoaキャッシュ管理装置及びその方法 |
CN107133234A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 缓存数据更新的方法、装置及系统 |
CN109190070A (zh) * | 2018-08-01 | 2019-01-11 | 北京奇艺世纪科技有限公司 | 一种数据处理方法、装置、系统及应用服务器 |
CN109582684A (zh) * | 2018-11-30 | 2019-04-05 | 深圳市盟天科技有限公司 | 一种本地缓存数据的更新方法、装置、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
"一种网络编码分布式存储系统中的数据更新策略";刘冰星等;《小型微型计算机系统》;20170331(第3期);第645-650页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111147599A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147599B (zh) | 缓存数据的更新方法、装置、服务器及存储介质 | |
CN111464615B (zh) | 请求处理方法、装置、服务器及存储介质 | |
US7366738B2 (en) | Method and system for object cache synchronization | |
US10462250B2 (en) | Distributed caching cluster client configuration | |
KR20040038340A (ko) | 이동 컴퓨팅 환경에서 트랜잭션 캐시 일관성 유지 시스템및 방법 | |
US9529772B1 (en) | Distributed caching cluster configuration | |
CN104519095A (zh) | 一种动态消息推送方法及其系统、服务端、客户端 | |
CA3058061A1 (en) | Permission processing method, device, application side device and storage media | |
KR101175505B1 (ko) | N?스크린 환경에서 네트워크 기반 파일 시스템을 이용한 사용자 데이터 저장환경 제공 시스템 | |
US11018860B2 (en) | Highly available and reliable secret distribution infrastructure | |
JP2005530258A (ja) | クライアント・デバイスをサーバからリフレッシュする間に再同期化するためのシステムおよび方法 | |
CN110489135A (zh) | 一种云手机的迁移方法、服务器、云手机及系统 | |
CN102047635A (zh) | 具有可选数据存储的基于网络的地址簿 | |
CN102801782A (zh) | 一种数据的同步更新方法和系统 | |
KR20210044281A (ko) | 클라우드 저하 모드에서 지속적인 디바이스 동작 안정성을 보장하기 위한 방법 및 장치 | |
KR101275995B1 (ko) | 정보 가전의 데이터 저장 시스템 및 데이터 처리 방법 | |
CN114840562A (zh) | 业务数据的分布式缓存方法、装置、电子设备及存储介质 | |
CN106534049B (zh) | 基于服务器的数据下发方法、客户端、服务器及系统 | |
CN109254853B (zh) | 数据共享方法、数据共享系统及计算机可读存储介质 | |
CN110807040B (zh) | 管理数据的方法、装置、设备及存储介质 | |
KR102073549B1 (ko) | 액세스장치 및 액세스장치의 동작 방법 | |
CN113157722A (zh) | 一种数据处理方法、装置、服务器、系统及存储介质 | |
US10506038B1 (en) | Method and system for implementing a global node architecture | |
CN113138943A (zh) | 一种处理请求的方法和装置 | |
KR101173821B1 (ko) | 모바일 기기의 구성 정보 관리 시스템 |
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 |