数据缓存方法、装置及系统与流程

文档序号:12478229阅读:237来源:国知局
数据缓存方法、装置及系统与流程

本申请涉及计算机技术领域,具体涉及一种数据缓存方法、装置及系统。



背景技术:

随着计算机互联网技术的发展,特别是随着全球化进程的推进,互联网的覆盖范围越来越大,覆盖深度已经深入我们的衣食住行。随着服务器服务的客户端基数增大,服务器的处理能力受到了挑战。现有技术中,为了加快对请求的处理速度,特别是在大量用户请求处理时,服务器不再每次都直接查询和写数据库,而是先做了缓存处理,在内存中维护一份数据供自身访问,然后再批量同步数据和写数据库,减少查询数据库和写数据库。因此,采用分布器服务器系统,将单个服务器的缓存压力分摊给别的服务器,可以有效降低单个服务器的缓存压力,提高了服务器的处理能力。

在实现本申请的过程中,发明人发现现有技术至少存在以下问题:采用分布式服务器架构,由于缓存分配到了不同的服务器,因此在查询缓存数据时需要在多个服务器间查找,增加了查询时间;此外,如果两个或以上的服务器缓存了同一份数据,也要面临数据同步问题,极大程度上影响了请求处理速度。



技术实现要素:

本申请实施例提供一种数据缓存方法、装置及系统,用以解决上述阐述的现有技术中的至少一个问题。

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

主服务器更新一级缓存中的数据以生成更新数据;

主服务器生成同步指令,将所述同步指令发送至多个从服务器以将所述更新数据写入所述多个从服务器的二级缓存中。

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

从服务器监听主服务器更新一级缓存中的数据生成更新数据而发送的同步指令;

从服务器根据接收到的同步指令将所述更新数据写入二级缓存中。

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

从服务器响应客户端的请求,更新二级缓存中的数据以生成更新数据;

从服务器基于所述更新数据向主服务器发送更新请求,以使所述主服务器根据所述更新数据修改一级缓存中的数据。

本申请实施例的第一方面提供了一种数据缓存装置,所述装置包括:

数据更新单元,用于更新一级缓存中的数据以生成更新数据;

指令生成单元,用于生成同步指令,将所述同步指令发送至多个从服务器以将所述更新数据写入所述多个从服务器的二级缓存中。

本申请实施例的第二方面提供了一种数据缓存装置,包括:

指令监听单元,用于监听主服务器更新一级缓存中的数据生成更新数据而发送的同步指令;

数据同步单元,用于根据接收到的同步指令将所述更新数据写入二级缓存中。

本申请实施例的第三方面提供了一种数据缓存装置,包括:

请求响应单元,用于响应客户端的请求,更新二级缓存中的数据以生成更新数据;

更新请求发送单元,用于基于所述更新数据向主服务器发送更新请求,以使所述主服务器根据所述更新数据修改一级缓存中的数据。

本申请实施例最后提供了一种数据缓存系统,所述系统包括:

第一数据缓存装置,所述第一数据缓存装置为上述实施例所述的第一方面提供的数据缓存装置;

第二数据缓存装置,所述第二数据缓存装置为上述实施例所述的第二方面或第三方面提供的数据缓存装置。

本申请实施例提供的数据缓存方法、装置及系统,通过主服务器直接更改其一级缓存内的数据得到更新数据后,根据该更新数据生成同步指令发送至多个从服务器使得多个从服务器将该更新数据写入其各自的二级缓存中,或者,通过从服务器应答客户端的请求从而更新该从服务器的二级缓存内的数据得到更新数据后,再根据该更新数据生成更新请求并发送至主服务器,使得主服务器根据该从服务器发送的更新请求更新其一级缓存内的相应数据后,生成该更新数据的同步指令并发送至其他的从服务器,进一步使得其他从服务器的二级缓存内同样的数据得到同步更新。与现有技术相比,本申请实施例能够满足不同服务器之间数据同步的需求,降低在多个服务器之间因为缓存数据的差异性导致查询时间过长或数据存在误差造成的损失,减少服务器对数据的处理时间,加快对用户请求的处理速度,提升用户体验。

附图说明

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

图1是本申请第一实施例的数据缓存方法的流程图;

图2是本申请第二实施例的数据缓存方法的流程图;

图3是本申请第三实施例的数据缓存方法的流程图;

图4是本申请第四实施例的数据缓存方法的流程图;

图5是本申请第一实施例的数据缓存装置的结构示意图;

图6是本申请第三实施例的数据缓存装置的结构示意图;

图7是本申请第四实施例的数据缓存装置的结构示意图;

图8是本申请一实施例的数据缓存设备的结构示意图;

图9是本申请一实施例的数据缓存系统的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在不冲突的情况下,本申请中的实施方式及实施方式中的特征可以相互组合。

本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

图1是本申请第一实施例的数据缓存方法的流程图。如图1所示,该方法包括:

S11:主服务器更新一级缓存中的数据以生成更新数据;

S12:主服务器生成同步指令,将所述同步指令发送至多个从服务器以将所述更新数据写入所述多个从服务器的二级缓存中。

本实施例中,主服务器可以通过更改其一级缓存内的数据得到更新数据,根据该更新数据生成同步指令并发送至多个从服务器使得多个从服务器根据该同步指令将该更新数据写入其各自的二级缓存中,由此可以使得主服务器的一级缓存内和所有从服务器的二级缓存内的数据得到同步更新。

例如,当购物网站上部分商品由于促销、过季等因素而导致其价格发生变化时,可以通过该购物网站的主服务器更改这些商品的价格,将更改后的商品价格写入主服务器的一级缓存内,并通过主服务器向所有的从服务器例如以广播形式发送同步指令,使所有的从服务器的二级缓存内存储的这些商品的价格也变为更改后的价格,这样,当用户访问该购物网站时,不管该用户的访问请求被定向至哪一个服务器,该用户看到的商品价格均为更改后的价格,使得这些商品的价格能够及时在所有的服务器中同步,避免了该购物网站因数据没有及时同步造成的损失。又例如,用户观看视频内容时,若视频内容进行了更新,则主服务器更新其一级缓存内相应的视频内容,并将更新后的视频内容同步至所有的从服务器中,避免了用户通过不同从服务器观看到的视频内容不一致的问题。

与现有技术相比,本申请实施例能够满足不同服务器之间数据同步的需求,降低在多个服务器之间因为缓存数据的差异性导致查询时间过长或数据存在误差造成的损失,减少服务器对数据的处理时间,加快了对用户请求的处理速度,提升了用户体验。

图2是本申请第二实施例的数据缓存方法的流程图。如图2所示,该方法包括:

S21:主服务器接收从服务器响应客户端的请求而发送的更新请求,修改一级缓存中的数据以生成更新数据;

S22:主服务器生成同步指令,将所述同步指令发送至多个从服务器以将所述更新数据写入所述多个从服务器的二级缓存中。

本实施例中,由客户端向某一从服务器发出请求,该从服务器应答客户端的请求的同时根据该请求对该从服务器的二级缓存内的相应数据进行更新,得到更新数据后,再根据该更新数据生成更新请求并发送至主服务器,使得主服务器根据该从服务器发送的更新请求更新其一级缓存内的相应数据后,生成该更新数据的同步指令并发送至其他的从服务器,进一步使得其他从服务器的二级缓存内同样的数据得到同步更新。

与图1所示实施例不同的是,图1所示实施例中主服务器可以直接更新其一级缓存内的数据,而图2所示实施例中,主服务器中的一级缓存内的数据是根据客户端访问的从服务器的数据更新而更新的,进而其他的从服务器再根据主服务器一级缓存内的数据更新而更新各自的二级缓存内的数据。该方法可以用于用户通过客户端对服务器中的数据进行写操作。例如,用户通过客户端在购物网站上对购买的物品或服务进行付款时,该物品或服务的付款信息上传至某一从服务器,该从服务器将付款信息显示在用户访问的页面并上传至主服务器,主服务器再将付款信息同步至其他所有的从服务器,可以避免用户因网络状况不稳定等原因导致付款页面刷新后,通过其他从服务器被访问时付款信息未及时更新,从而可能造成用户损失的问题。又例如,用户在弹幕视频网站观看视频A时,通过客户端向某一从服务器发送了一条对所观看视频A的弹幕,该从服务器应答了用户的发送请求后使得用户可以在客户端上看到自己所发的弹幕,同时,该从服务器将该弹幕上传至主服务器,主服务器又将该弹幕同步在其他所有的从服务器上,使得其他用户在通过其他从服务器观看视频A时,也能实时看到该弹幕,增加了用户观看视频的乐趣,提升了用户体验。

图3是本申请第三实施例的数据缓存方法的流程图。如图3所示,该方法包括:

S31:从服务器监听主服务器更新一级缓存中的数据生成更新数据而发送的同步指令;

S32:从服务器根据接收到的同步指令将所述更新数据写入二级缓存中。

本实施例中,在主服务器更改其一级缓存内的数据得到更新数据后,从服务器监听主服务器根据该更新数据生成而发送的同步指令,并根据该同步指令将该更新数据写入各自的二级缓存中,由此可以使得主服务器的一级缓存内和所有从服务器的二级缓存内的数据得到同步更新。

图4是本申请第四实施例的数据缓存方法的流程图。如图4所示,该方法包括:

S41:从服务器响应客户端的请求,更新二级缓存中的数据以生成更新数据;

S42:从服务器基于所述更新数据向主服务器发送更新请求,以使所述主服务器根据所述更新数据修改一级缓存中的数据。

本实施例中,由客户端向某一从服务器发出请求,该从服务器应答客户端的请求的同时根据该请求对该从服务器的二级缓存内的相应数据进行更新,得到更新数据后,再根据该更新数据生成更新请求并发送至主服务器,使得主服务器能够根据该从服务器发送的更新请求更新其一级缓存内的相应数据。从而在后续过程中主服务器生成该更新数据的同步指令并发送至其他的从服务器,进一步能够使得其他从服务器的二级缓存内同样的数据得到同步更新。这样,则所有服务器中的数据都得到了同步更新。

在本申请实施例中,主从服务器中缓存的数据其存储结构可以是顺序存储、链式存储、索引存储和散列存储中的任意一种或多种。例如,可以将数据以键值对(Key-Value)的形式存储在服务器中。

在本申请实施例的一些实施方式中,从服务器在接收主服务器向从服务器发送的同步指令后可以向主服务器发送更新数据是否在从服务器中同步成功的反馈信息。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

图5是本申请第一实施例的数据缓存装置的结构示意图。本申请实施例中所述的数据缓存方法可以基于本申请实施例中的数据缓存装置实施。如图5所示,该装置包括数据更新单元51和指令生成单元52。

数据更新单元51用于更新一级缓存中的数据以生成更新数据;

指令生成单元52用于生成同步指令,将所述同步指令发送至多个从服务器以将所述更新数据写入所述多个从服务器的二级缓存中。

本实施例中,数据更新单元可以通过更改其一级缓存内的数据得到更新数据,指令生成单元根据该更新数据生成同步指令并发送至多个从服务器使得多个从服务器根据该同步指令将该更新数据写入其各自的二级缓存中,由此可以使得主服务器的一级缓存内和所有从服务器的二级缓存内的数据得到同步更新。

与现有技术相比,本申请实施例能够满足不同服务器之间数据同步的需求,降低在多个服务器之间因为缓存数据的差异性导致查询时间过长或数据存在误差造成的损失,减少服务器对数据的处理时间,加快了对用户请求的处理速度,提升了用户体验。

在本申请第二实施例的数据缓存装置中,数据更新单元用于接收从服务器响应客户端的请求而发送的更新请求,修改一级缓存中的数据以生成更新数据。

本实施例中,由客户端向某一从服务器发出请求,该从服务器应答客户端的请求的同时根据该请求对该从服务器的二级缓存内的相应数据进行更新,得到更新数据后,再根据该更新数据生成更新请求并发送至数据更新单元,使得数据更新单元根据该从服务器发送的更新请求更新其一级缓存内的相应数据后,指令生成单元生成该更新数据的同步指令并发送至其他的从服务器,进一步使得其他从服务器的二级缓存内同样的数据得到同步更新。

图6是本申请第三实施例的数据缓存装置的结构示意图。如图6所示,该装置包括指令监听单元61和数据同步单元62。

指令监听单元61用于监听主服务器更新一级缓存中的数据生成更新数据而发送的同步指令;

数据同步单元62用于根据接收到的同步指令将所述更新数据写入二级缓存中。

本实施例中,在主服务器更改其一级缓存内的数据得到更新数据后,指令监听单元监听主服务器根据该更新数据生成而发送的同步指令,并通过数据同步单元根据该同步指令将该更新数据写入各自的二级缓存中,由此可以使得主服务器的一级缓存内和所有从服务器的二级缓存内的数据得到同步更新。

图7是本申请第四实施例的数据缓存装置的结构示意图。如图7所示,该装置包括请求响应单元71和更新请求发送单元72。

请求响应单元71用于响应客户端的请求,更新二级缓存中的数据以生成更新数据;

更新请求发送单元72用于基于所述更新数据向主服务器发送更新请求,以使所述主服务器根据所述更新数据修改一级缓存中的数据。

本实施例中,由客户端向某一从服务器发出请求,该从服务器的请求响应单元应答客户端的请求的同时根据该请求对该从服务器的二级缓存内的相应数据进行更新,得到更新数据后,再根据该更新数据生成更新请求并通过更新请求发送单元发送至主服务器,使得主服务器能够根据该从服务器发送的更新请求更新其一级缓存内的相应数据。从而在后续过程中主服务器生成该更新数据的同步指令并发送至其他的从服务器,进一步能够使得其他从服务器的二级缓存内同样的数据得到同步更新。这样,则所有服务器中的数据都得到了同步更新。

本申请实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。

图8是本申请一实施例的数据缓存设备800的结构示意图。本申请具体实施例并不对数据缓存设备800的具体实现做限定。如图8所示,该设备可以包括:

处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830、以及通信总线840。其中:

处理器810、通信接口820、以及存储器830通过通信总线840完成相互间的通信。

通信接口820,用于与比如客户端等的网元通信。

处理器810,用于执行程序832,具体可以执行上述方法实施例中的相关步骤。

具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。

处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

图9是本申请一实施例的数据缓存系统的结构示意图。如图9所示,该系统包括第一数据缓存装置91和第二数据缓存装置92。

第一数据缓存装置91为上述第一或第二实施例所述的数据缓存装置;

第二数据缓存装置92为上述第三或第四实施例所述的数据缓存装置。

以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1