一种缓存数据管理方法和相关装置与流程

专利2022-06-29  74


本申请涉及数据处理领域,特别是涉及一种缓存数据管理方法和相关装置。



背景技术:

在大部分互联网应用场景下,对于高并发请求的数据,一般会使用到缓存技术,从而在缓存服务器中读取缓存数据,由此达到保护后端数据库的目的。

然而,在缓存的设计和使用过程中,经常会遇到缓存击穿的问题,导致在某些情况下对后端数据库的保护效果下降,影响到线上业务的正常运作。



技术实现要素:

为了解决上述技术问题,本申请提供了一种缓存数据管理方法和相关装置,避免了缓存击穿的问题,提升了对后端数据库的保护效果,保证了线上业务的正常运作。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供一种缓存数据管理方法,所述方法包括:

获取目标数据的缓存过期时间;

若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

从所述数据库获取第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

利用所述最新数据对所述目标数据进行更新。

第二方面,本申请实施例提供一种缓存数据管理装置,所述装置包括第一获取单元、第一发送单元、第二获取单元和更新单元:

所述第一获取单元,用于获取目标数据的缓存过期时间;

所述第一发送单元,用于若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

所述第二获取单元,用于从所述数据库获取第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

所述更新单元,用于利用所述最新数据对所述目标数据进行更新。

第三方面,本申请实施例提供一种缓存数据管理系统,所述系统包括缓存服务器和数据库:

所述缓存服务器,用于获取目标数据的缓存过期时间;若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

所述数据库,用于向所述缓存服务器返回第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

所述缓存服务器,还用于利用所述最新数据对所述目标数据进行更新。

第四方面,本申请实施例提供一种用于缓存数据管理的设备,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行第一方面所述的方法。

第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面所述的方法。

由上述技术方案可以看出,本申请实施例提供的缓存数据管理方法可以获取目标数据的缓存过期时间,在缓存过期时间到达之前判断目标数据的缓存时间距离缓存过期时间的剩余时间是否达到预设阈值,若是,则向数据库发送数据请求消息,通过数据请求消息向数据库请求目标数据对应的最新数据,利用数据库返回的第一请求应答消息中包括的最新数据对目标数据进行更新。本申请可以在目标数据缓存过期之前,提前启动更新机制,利用获取到的最新数据提前对目标数据进行更新,从而避免了缓存击穿的问题,提升了对后端数据库的保护效果,保证了线上业务的正常运作。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为相关技术中缓存数据管理方法的信令交互图;

图2为本申请实施例提供的一种缓存数据管理方法的系统架构图;

图3为本申请实施例提供的一种缓存数据管理方法的流程图;

图4为本申请实施例提供的一种缓存数据管理系统的结构图;

图5为本申请实施例提供的一种缓存数据管理方法的信令交互图;

图6a为本申请实施例提供的一种缓存数据管理装置的结构图;

图6b为本申请实施例提供的一种缓存数据管理装置的结构图;

图7为本申请实施例提供的一种终端设备的结构图;

图8为本申请实施例提供的一种服务器的结构图。

具体实施方式

下面结合附图,对本申请的实施例进行描述。

在缓存技术的设计和使用过程中,通常会对缓存数据设置缓存过期时间,对于热点的缓存数据,在高并发的请求环境下,一旦缓存过期则会导致多次请求的缓存未命中,导致用户触发的请求直接落到了数据库,数据库的承载能力有限,一旦过载则导致服务不可用。

例如图1所示,用户通过终端设备向逻辑服务器发送业务请求(s101),逻辑服务器根据业务请求向缓存服务器发送缓存数据请求(s102),若缓存命中且未过期则直接从缓存服务器返回数据(s103),若缓存未命中或缓存过期,则缓存服务器向数据库发送数据请求(s104)。数据库根据该数据请求向缓存服务器返回数据(s105),缓存服务器接收到该数据后更新本地缓存(s106),并向逻辑服务器返回数据(s107),逻辑服务器再将该数据返回至终端设备(108)。

可见,当缓存服务器中的数据缓存过期时,则会使得触发的请求直接落到了数据库,对数据库的保护效果下降。在高并发的请求环境下,将对数据库造成过大的压力,影响线上业务的正常运作。

为此,本申请实施例提供一种缓存数据管理方法,该方法可以在缓存过期之前,提前对缓存服务器中缓存的数据进行更新,从而避免了缓存击穿的问题,提升了对后端数据库的保护效果,保证了线上业务的正常运作。

该方法可以应用到服务器,例如缓存服务器,该服务器可以为独立服务器,也可以为集群服务器。

本申请实施例提供的缓存数据管理方法可以应用到多种互联网场景中,例如游戏的后台服务、搜索服务、金融系统的后台服务等等。

为了便于理解本申请的技术方案,下面结合实际应用场景,对本申请实施例提供的缓存数据管理方法进行介绍。

参见图2,图2为本申请实施例提供的缓存数据管理方法的系统架构图。该系统架构图中包括终端设备201、缓存服务器202和数据库203,其中,缓存服务器202用于缓存一些访问较为频繁的数据,从而对数据库203进行保护。用户可以通过终端设备201向缓存服务器202发送业务请求,缓存服务器202根据业务请求向终端设备201返回数据。其中,缓存服务器202和数据库203可以构成缓存管理系统。

终端设备201例如可以是智能终端、计算机、个人数字助理(personaldigitalassistant,简称pda)、平板电脑等设备。

为了避免缓存击穿问题,缓存服务器202可以获取其上缓存的数据例如目标数据的缓存过期时间,判断目标数据的缓存时间距离缓存过期时间的剩余时间是否达到预设阈值,若是,则触发提前更新机制,即缓存服务器202向数据库发送数据请求消息,该数据请求消息用于请求目标数据对应的最新数据。

数据库203可以向缓存服务器202发送包括最新数据的第一请求应答消息,缓存服务器202在接收到最新数据后,可以利用最新数据对目标数据进行更新。从而实现在目标数据的缓存时间达到缓存过期时间之前即缓存过期之前,提前对目标数据进行更新,避免缓存击穿的问题,提高对数据库203的保护效果。

接下来,将结合附图对本申请实施例提供的缓存数据管理方法进行详细介绍。

参见图3,图3示出了一种缓存数据管理方法的流程图,方法包括:

s301、获取目标数据的缓存过期时间。

缓存数据管理系统可以参见图2所示,缓存服务器中缓存了各种业务对应的数据,用户可以通过终端设备201向缓存服务器202发送业务请求,缓存服务器根据业务请求向终端设备201返回数据。

同时,缓存服务器中保存了每个数据的缓存过期时间。缓存过期时间可以是数据库为每个数据设置的,缓存过期时间可以是绝对时间,例如缓存过期时间为12月28号12:00;缓存过期时间也可以是相对时间,例如,缓存过期时间为12个小时。

为了降低缓存服务器的访问压力,各种业务对应的数据可以分布式部署,即将各种业务对应的数据缓存在多台缓存服务器中,每台缓存服务器中缓存的数据是根据预先设置的缓存策略确定的,每台缓存服务器中缓存的数据可以相同,也可以不同,本实施例对此不做限定。

当各种业务对应的数据可以缓存在多台缓存服务器中,为了确定出终端设备发送的业务请求需要向哪台缓存服务器请求缓存的数据,缓存数据管理系统还包括逻辑服务器204,逻辑服务器可以包括一个或多个,参见图4所示(图4以逻辑服务器包括多个为例)。此时,用户通过终端设备201向逻辑服务器204发送业务请求,逻辑服务器204可以确定针对该业务请求需要向哪个缓存服务器202请求缓存数据,则逻辑服务器204可以将该业务请求发送至缓存有所请求数据的缓存服务器202,缓存服务器202根据业务请求通过逻辑服务器204向终端设备201返回数据。

针对缓存服务器中任一数据例如目标数据,缓存服务器可以获取目标数据的缓存过期时间,从而提前判断目标数据是否将要缓存过期。

s302、若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息。

缓存服务器获取到目标数据的缓存过期时间后,可以确定目标数据的缓存时间距离所述缓存过期时间的剩余时间,若该剩余时间达到预设阈值,可以认为目标数据将要缓存过期,则向数据库发送数据请求消息,通过该数据请求消息向数据库请求目标数据对应的最新数据,从而在目标数据缓存过期之前,提前对目标数据进行更新。

其中,预设阈值可以任意设置,通常情况下,设置的预设阈值可以比较小,从而使得缓存时间更加接近缓存过期时间,在目标数据将要缓存过期但还未过期时对目标数据进行更新。例如,预设阈值可以设置为3分钟,即在距离缓存过期时间还有3分钟时,触发提前更新机制。

在本实施例中,缓存服务器可以实时或周期性地确定缓存时间距离缓存过期时间的剩余时间是否达到预设阈值。

需要说明的是,若缓存数据管理系统中包括多台缓存服务器,且目标数据位于多台缓存服务器中,为了降低对数据库的请求压力,确保多台缓存服务器中的目标数据可以及时更新,保证多台缓存服务器之间数据一致性,在本申请实施例中,缓存数据管理系统中还可以包括锁服务器205,从而基于竞争的方式确定访问数据库以更新目标数据的缓存服务器。

参见图4所示,此时,s302中向数据库发送数据请求消息的一种可能的实现方式为缓存服务器202向锁服务器205发送锁请求消息,该锁请求消息用于请求对目标数据进行锁定,避免其他业务对该目标数据进行操作。接收锁服务器205发送的第二请求应答消息,若第二请求应答消息指示锁定成功,则向数据库发送数据请求消息。

需要强调的是,为了保证数据的一致性,多台缓存服务器中只有一台缓存服务器接收到的第二请求应答消息指示锁定成功。另外,在锁定过程中,若缓存服务器再次发起针对该目标数据的锁请求消息,不会得到指示锁定成功的第一请求应答消息。用于向数据库203发送数据请求消息的缓存服务器可以称为目标缓存服务器,图4示出的目标缓存服务器为图4中最下方的缓存服务器202。

s303、从所述数据库获取第一请求应答消息。

数据库根据获取到的数据请求消息,向缓存服务器发送第一请求应答消息。其中,第一请求应答消息中包括目标数据的最新数据。

通常情况下,为了便于缓存服务器知晓最新数据的缓存过期时间,从而可以及时对最新数据进行后续更新操作,第一请求应答消息中还包括最新数据的缓存过期时间。

需要说明的是,若目标数据位于多台缓存服务器中,向数据库发送数据请求消息的多台缓存服务器中的一台服务器(确定出的目标缓存服务器),相应的,s303中可以通过目标缓存服务器从数据库获取第一请求应答消息,目标缓存服务器为接收到的第二请求应答消息指示锁定成功的缓存服务器。

s304、利用所述最新数据对所述目标数据进行更新。

缓存服务器接收到最新数据后,可以利用最新数据对目标数据进行更新。

在目标数据位于多台缓存服务器中,通过目标缓存服务器获取到第一请求应答消息的情况下,可以通过目标缓存服务器向多台缓存服务器(包括目标缓存服务器本身)发起缓存更新通知,缓存更新通知中包括最新数据,从而将最新数据分发给其余缓存服务器,并指示多台缓存服务器更新目标数据,从而使得所有缓存服务器将目标数据更新为最新数据,参见图4所示。

在完成目标数据的更新后,可以通过目标缓存服务器向锁服务器发送锁释放请求,从而请求解除对目标数据的锁定,使得其他业务可以对该目标数据进行操作。若通过目标缓存服务器接收到锁服务器发送的用于指示解除锁定的第三请求应答消息,则解除锁定。

在分布式部署的环境下,多台缓存服务器基于锁竞争,只选择其中一台缓存服务器去更新并向其余缓存服务器分发目标数据的最新数据,保证缓存更新的一致性,同时也减少对数据库的请求压力。

由上述技术方案可以看出,本申请实施例提供的缓存数据管理方法可以获取目标数据的缓存过期时间,在缓存过期时间到达之前判断目标数据的缓存时间距离缓存过期时间的剩余时间是否达到预设阈值,若是,则向数据库发送数据请求消息,通过数据请求消息向数据库请求目标数据对应的最新数据,利用数据库返回的第一请求应答消息中包括的最新数据对目标数据进行更新。本申请可以在目标数据缓存过期之前,提前启动更新机制,利用获取到的最新数据提前对目标数据进行更新,从而避免了缓存击穿的问题,提升了对后端数据库的保护效果,保证了线上业务的正常运作。

接下来,将结合实际应用场景对本申请实施例提供给的缓存数据管理方法进行介绍。该应用场景中涉及到的缓存数据管理系统包括图4所示,包括用户对应的终端设备201、多个缓存服务器202、数据库203、逻辑服务器204和锁服务器205,通过该缓存数据管理系统可以实现缓存数据管理,包括对业务对应数据的访问,以及提前更新缓存数据库中即将过期的数据。

基于图4所示的缓存数据管理系统,缓存数据管理方法的信令交互图参见图5所示,所述方法包括:

s501、用户通过终端设备向逻辑服务器发起业务请求。

s502、逻辑服务器向缓存服务器请求缓存的数据。

s503、缓存服务器向逻辑服务器返回数据。

s504、逻辑服务器向终端设备返回数据。

s505、缓存服务器确定本地缓存的目标数据将要过期时,向锁服务器发送锁请求。

s506、锁服务器返回第二请求应答消息。

s507、缓存服务器向数据库发送数据请求消息。

s508、数据库返回最新数据和过期时间。

s509、该缓存服务器向所有缓存服务器发起缓存更新通知,使得所有缓存服务器利用最新数据更新目标数据。

s510、缓存服务器向锁服务器发送锁释放请求。

s511、锁服务器返回第三请求应答消息。

基于前述实施例提供的缓存数据管理方法,本申请实施例提供一种缓存数据管理装置,参见图6a,所述装置包括第一获取单元601、第一发送单元602、第二获取单元603和更新单元604:

所述第一获取单元601,用于获取目标数据的缓存过期时间;

所述第一发送单元602,用于若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

所述第二获取单元603,用于从所述数据库获取第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

所述更新单元604,用于利用所述最新数据对所述目标数据进行更新。

在一种可能的实现方式中,若所述目标数据位于多台缓存服务器中,所述第一发送单元602,用于:

向锁服务器发送锁请求消息,所述锁请求消息用于请求对所述目标数据进行锁定;

接收所述锁服务器发送的第二请求应答消息;

若所述第二请求应答消息指示锁定成功,向所述数据库发送所述数据请求消息;所述多台缓存服务器中只有一台缓存服务器接收到的第二请求应答消息指示锁定成功。

在一种可能的实现方式中,所述第二获取单元603,用于:

通过目标缓存服务器从所述数据库获取第一请求应答消息;所述目标缓存服务器为接收到的第二请求应答消息指示锁定成功的缓存服务器;

所述更新单元604,用于:

通过所述目标缓存服务器向所述多台缓存服务器发起缓存更新通知,所述缓存更新通知中包括所述最新数据,用于指示所述多台缓存服务器更新所述目标数据。

在一种可能的实现方式中,参见图6b,所述装置还包括第二发送单元605和接收单元606:

所述第二发送单元605,用于通过所述目标缓存服务器向所述锁服务器发送锁释放请求;

所述接收单元606,用于接收所述锁服务器发送的第三请求应答消息,所述第三请求应答消息用于指示解除锁定。

在一种可能的实现方式中,所述第一请求应答消息中包括所述最新数据的缓存过期时间。

本申请实施例还提供了一种用于缓存数据管理的设备,下面结合附图对用于缓存数据管理的设备进行介绍。请参见图7所示,本申请实施例提供了一种用于缓存数据管理的设备700,该设备700还可以是终端设备,该终端设备可以为包括手机、平板电脑、个人数字助理(personaldigitalassistant,简称pda)、销售终端(pointofsales,简称pos)、车载电脑等任意智能终端,以终端设备为手机为例:

图7示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图7,手机包括:射频(radiofrequency,简称rf)电路710、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(wirelessfidelity,简称wifi)模块770、处理器780、以及电源790等部件。本领域技术人员可以理解,图7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图7对手机的各个构成部件进行具体的介绍:

rf电路710可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器780处理;另外,将设计上行的数据发送给基站。通常,rf电路710包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(lownoiseamplifier,简称lna)、双工器等。此外,rf电路710还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,简称gsm)、通用分组无线服务(generalpacketradioservice,简称gprs)、码分多址(codedivisionmultipleaccess,简称cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,简称wcdma)、长期演进(longtermevolution,简称lte)、电子邮件、短消息服务(shortmessagingservice,简称sms)等。

存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元730可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元740可包括显示面板741,可选的,可以采用液晶显示器(liquidcrystaldisplay,简称lcd)、有机发光二极管(organiclight-emittingdiode,简称oled)等形式来配置显示面板741。进一步的,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触控面板731与显示面板741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路760、扬声器761,传声器762可提供用户与手机之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经rf电路710以发送给比如另一手机,或者将音频数据输出至存储器720以便进一步处理。

wifi属于短距离无线传输技术,手机通过wifi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了wifi模块770,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。

手机还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

上述实施例中由终端设备所执行的步骤可以基于该图7所示的终端设备结构。

本申请实施例还提供服务器,请参见图8所示,图8为本申请实施例提供的服务器800的结构图,服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,简称cpu)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。

服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作系统841,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

在本实施例中,该服务器所包括的处理器822还具有以下功能:

获取目标数据的缓存过期时间;

若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

从所述数据库获取第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

利用所述最新数据对所述目标数据进行更新。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。


技术特征:

1.一种缓存数据管理方法,其特征在于,所述方法包括:

获取目标数据的缓存过期时间;

若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

从所述数据库获取第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

利用所述最新数据对所述目标数据进行更新。

2.根据权利要求1所述的方法,其特征在于,若所述目标数据位于多台缓存服务器中,所述向数据库发送数据请求消息,包括:

向锁服务器发送锁请求消息,所述锁请求消息用于请求对所述目标数据进行锁定;

接收所述锁服务器发送的第二请求应答消息;

若所述第二请求应答消息指示锁定成功,向所述数据库发送所述数据请求消息;所述多台缓存服务器中只有一台缓存服务器接收到的第二请求应答消息指示锁定成功。

3.根据权利要求2所述的方法,其特征在于,所述从所述数据库获取第一请求应答消息,包括:

通过目标缓存服务器从所述数据库获取第一请求应答消息;所述目标缓存服务器为接收到的第二请求应答消息指示锁定成功的缓存服务器;

所述利用所述最新数据对所述目标数进行更新,包括:

通过所述目标缓存服务器向所述多台缓存服务器发起缓存更新通知,所述缓存更新通知中包括所述最新数据,用于指示所述多台缓存服务器更新所述目标数据。

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

通过所述目标缓存服务器向所述锁服务器发送锁释放请求;

接收所述锁服务器发送的第三请求应答消息,所述第三请求应答消息用于指示解除锁定。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一请求应答消息中包括所述最新数据的缓存过期时间。

6.一种缓存数据管理装置,其特征在于,所述装置包括第一获取单元、第一发送单元、第二获取单元和更新单元:

所述第一获取单元,用于获取目标数据的缓存过期时间;

所述第一发送单元,用于若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

所述第二获取单元,用于从所述数据库获取第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

所述更新单元,用于利用所述最新数据对所述目标数据进行更新。

7.一种缓存数据管理系统,其特征在于,所述系统包括缓存服务器和数据库:

所述缓存服务器,用于获取目标数据的缓存过期时间;若所述目标数据的缓存时间距离所述缓存过期时间的剩余时间达到预设阈值,向数据库发送数据请求消息,所述数据请求消息用于请求所述目标数据对应的最新数据;

所述数据库,用于向所述缓存服务器返回第一请求应答消息,所述第一请求应答消息中包括所述最新数据;

所述缓存服务器,还用于利用所述最新数据对所述目标数据进行更新。

8.根据权利要求7所述的系统,其特征在于,若所述目标数据位于多台缓存服务器中,所述系统还包括锁服务器:

所述缓存服务器,用于向所述锁服务器发送锁请求消息,所述锁请求消息用于请求对所述目标数据进行锁定;

所述锁服务器,用于向所述多台缓存服务器发送第二请求应答消息;所述多台缓存服务器中只有一台存服务器接收到的所述第二请求应答消息指示锁定成功。

9.一种用于缓存数据管理的设备,其特征在于,所述设备包括处理器以及存储器:

所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;

所述处理器用于根据所述程序代码中的指令执行权利要求1-5任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-5任一项所述的方法。

技术总结
本申请实施例公开一种缓存数据管理方法,可以获取目标数据的缓存过期时间,在缓存过期时间到达之前判断目标数据的缓存时间距离缓存过期时间的剩余时间是否达到预设阈值,若是,则向数据库发送数据请求消息,通过数据请求消息向数据库请求目标数据对应的最新数据,利用数据库返回的第一请求应答消息中包括的最新数据对目标数据进行更新。本申请可以在目标数据缓存过期之前,提前启动更新机制,利用获取到的最新数据提前对目标数据进行更新,从而避免了缓存击穿的问题,提升了对后端数据库的保护效果,保证了线上业务的正常运作。

技术研发人员:冯锋
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2020.02.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25572.html

最新回复(0)