一种自适应更新缓存策略的方法及系统与流程

文档序号:11154893 阅读:328 来源:国知局
一种自适应更新缓存策略的方法及系统与制造工艺

本发明涉及缓存管理技术领域,特别涉及一种自适应更新缓存策略的方法及系统。



背景技术:

现有的更新缓存的策略有两种,分别写更新策略,和写失效策略。所述写更新策略是指在数据更新后更新对应缓存中的数据,这种策略需要传送更新的数据到缓存,适用于读多写少的业务场景。所以写失效策略是指数据更新后设置缓存中对应数据失效,这种策略只需要传送失效信号给缓存,适用于读少写多的业务场景。

目前通用的缓存更新方式是根据数据更新情况设置为读更新或者读失效。但是存在一些业务场景,对于同一数据部分时间更新数据频繁,部分时间读取数据频繁。若设置为写更新,则在用户频繁更新的时间段内,数据服务会大量传送更新数据给缓存服务,而此时其实缓存中的数据很少被用户查询,产生无效的更新步骤,降低系统的工作效率。

因而现有技术还有待改进和提高。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的不足,提供一种自适应更新缓存策略的方法及系统,以解决现有缓存更新策略无法根据数据被访问的情况而自动调节缓存策略的问题。

为了解决上述技术问题,本发明所采用的技术方案如下:

一种自适应更新缓存策略的方法,其包括:

对业务层的缓存数据进行监控,并分别记录所述缓存数据在预设时间间隔内被读写的次数;

根据所述缓存数据被读写的次数计算读写计数比;

根据所述读写计数比更新所述缓存数据对应缓存的缓存策略。

所述自适应更新缓存策略的方法,其中,所述根据所述读写计数比更新所述缓存数据对应缓存的缓存策略具体包括:

将所述读写计数比与预设读写比阈值进行比较;

当所述读写计数比大于等于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第一缓存策略;

当所述读写计数比小于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第二缓存策略。

所述自适应更新缓存策略的方法,其中,所述第一缓存策略为写更新策略;所述第二缓存策略为写失效策略。

所述自适应更新缓存策略的方法,其中,所述根据所述缓存数据被读写的次数计算读写计数比具体包括:

读取所述缓存数据的被读次数及更新次数;

将所述缓存数据的被读次数与更新次数相除以得到读写计数比。

所述自适应更新缓存策略的方法,其中,所述根据所述读写计数比更新所述缓存数据对应缓存的缓存策略之后还包括:

将记录的被读次数及更新次数归零。

一种自适应更新缓存策略的系统,其包括:

记录模块,用于对业务层的缓存数据进行监控,并分别记录所述缓存数据在预设时间间隔内被读写的次数;

计算模块,用于根据所述缓存数据被读写的次数计算读写计数比;

更新模块,用于根据所述读写计数比更新所述缓存数据对应缓存的缓存策略。

所述自适应更新缓存策略的系统,其中,所述更新模块具体包括:

比较单元,用于将所述读写计数比与预设读写比阈值进行比较;

第一更新单元,用于当所述读写计数比大于等于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第一缓存策略;

第二更新单元,用于当所述读写计数比小于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第二缓存策略。

所述自适应更新缓存策略的系统,其中,所述第一缓存策略为写更新策略;所述第二缓存策略为写失效策略。

所述自适应更新缓存策略的系统,其中,所述计算模块具体包括:

读取单元,用于读取所述缓存数据的被读次数及更新次数;

计算单元,用于将所述缓存数据的被读次数与更新次数相除以得到读写计数比。

所述自适应更新缓存策略的系统,其还包括:

归零模块,用于将记录的被读次数及更新次数归零。

有益效果:与现有技术相比,本发明提供了一种自适应更新缓存策略的方法及系统,所述方法包括:对业务层的缓存数据进行监控,并分别记录所述缓存数据在预设时间间隔内被读写的次数;根据所述缓存数据被读写的次数计算读写计数比;根据所述读写计数比更新所述缓存数据对应缓存的缓存策略。本发明通过记录缓存数据被读写次数的比例来更新缓存策略,避免了当同一数据缓存在某一时间段内被用户频繁查询,另一时间段又被频繁更新时,缓存策略与数据缓存被执行的操作不适用的问题。

附图说明

图1为本发明提供的自适应更新缓存策略的方法较佳实施的流程图。

图2为本发明提供的自适应更新缓存策略的系统的结构原理图。

具体实施方式

本发明提供一种自适应更新缓存策略的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,模块”、“部件”或“单元”可以混合地使用。

终端设备可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

下面结合附图,通过对实施例的描述,对发明内容作进一步说明。

请参照图1,图1为本发明提供的自适应更新缓存策略的方法的较佳实施例的流程图。所述方法包括:

S100、对业务层的缓存数据进行监控,并分别记录所述缓存数据在预设时间间隔内被读写的次数。

具体地,所述对业务层的所有数据进行监控,即监控每个缓存数据被访问的次数。在监控到被访问行为时,判断所述访问行为读取操作还是写入操作,当为读取操作时,所述访问行为对应的缓存数据被读取次数加1;当为写入操作时,所述访问行为对应的缓存数据的更新次数加1。也就是说,业务层的每个缓存数据都记录其被读写的次数,并且在后续操作过程中,每个缓存数据都会根据被读写次数比来调整缓存策略。在本实施例中,仅以一个缓存数据为例加以说明。即所述对业务层的缓存数据进行监控,并分别记录所述缓存数据在预设时间间隔内被读写的次数可为对业务层的指定缓存数据进行监控,并记录所述缓存数据在预设时间间隔内被读写的次数。也就是说,记录同一缓存数据在预设时间间隔内被读写的次数。

所述预设时间间隔为预先设定用于确定读写次数的时间断,例如,5分钟等。所述预设时间间隔可以是系统默认的,也可以是根据不同业务进行调整。

在本实施例中,所述对业务层的缓存数据进行监控可以通过在服务的业务层增设一个监控模块,通过所述监控模块用于负责监控客户端访问服务的行为,并记录缓存数据在预设时间间隔t(如5分钟)内被客户端读取的次数()以及写入的次数()。所述缓存数据与一个缓存的key对应。这样根据所述缓存数据可以确定与其对应的缓存数据,以便后续调整所述缓存的更新策略。

S200、根据所述缓存数据被读写的次数计算读写计数比。

具体地,所述读写计数比指的是被读取次数与更新次数的比值。所述读写计数比的计数公式可以为:

其中,k为读写次数比,为被读取次数,为更新次数。

所述读写计数比的计数公式可以看出得出在预设时间间隔内所述缓存数据被读取次数和更新次数之间的关系,即在预设时间间隔内是被读取次数多还是更新次数多,进而可以根据缓存数据被读写的情况来自动调节缓存策略。

示例性的,所述根据所述缓存数据被读写的次数计算读写计数比具体可以包括:

S201、读取所述缓存数据的被读次数及更新次数;

S202、将所述缓存数据的被读次数与更新次数相除以得到读写计数比。

具体地,所述读取所述缓存数据的被读次数及更新次数是读取监控模块记录的该缓存数据被读次数及更新次数。在实际应用中,采用第一计数器记录所述业务被读次数,第二计数器记录所述业务更新次数。在读取时,可以直接通过读取第一计数器和第二计数器的数值来得到。

S300、根据所述读写计数比更新所述缓存数据对应缓存的缓存策略。

具体地,所述缓存策略为预先存储的缓存策略,所述缓存策略包括第一缓存策略和第二缓存策略,用于根据读写计数比的不同而选择不同的缓存策略。在本实施例中,所述第一缓存策略为写更新策略;所述第二缓存策略为写失效策略。所述写更新策略为在数据更新后更新对应缓存中的数据;写失效策略是指数据更新后设置缓存中对应数据失效。

示例性的,所述根据所述读写计数比更新所述缓存数据对应缓存的缓存策略具体包括:

S301、将所述读写计数比与预设读写比阈值进行比较;

S302当所述读写计数比大于等于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第一缓存策略;

S303、当所述读写计数比小于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第二缓存策略。

具体的来说,在所述步骤S301中,所述预设读写比阈值为预先设置,其作为常数放在服务配置中,当需要将读写比与预设读写比阈值进行比较时,从服务配置中读取。所述读写比阈值可以根据实际操作不同而设置不同的值,例如,通过比较缓存更新性能以得到读写比阈值。

在所述步骤S302中,当所述读写计数比大于等于预设读写比阈值时,说明客户端对所述缓存数据进行的访问操作为读取多写入少,从而将所述缓存数据对应缓存的缓存策略更新为第一缓存策略,即写更新策略。

在所述步骤S303中,当所述读写计数比小于预设读写比阈值时,说明客户端对所述缓存数据进行的访问操作为读取少写入多,从而将所述缓存数据对应缓存的缓存策略更新为第二缓存策略,即写失效策略。

在本发明的一个实施例中,所述根据所述读写计数比更新所述缓存数据对应缓存的缓存策略具体可以包括:

S300a、根据所述读写计数比确定其对应的更新后缓存策略,并获取缓存数据对应的缓存的当前缓存策略;

S300b、将所述更新后缓存策略与当前缓存策略进行比较;

S300c、如果相同,则保持所述缓存的缓存策略不变;

S300d、如果不同,则将所述缓存的缓存策略更新为更新后的缓存策略。

具体地,所述根据所述读写比确定其对应的更新后的缓存策略具体可以将读写比与预设读写比阈值进行比较的方式确定,对应具体的比较和确定过程在上述实施例中已经说明,这里就不再赘述。所述更新后的缓存策略可以为写更新策略和写失效策略,所述当前更新策略也可以为写更新策略和写失效策略。本实施例通过将根据读写比对确定更新后的缓存策略与当前缓存策略进行比较,仅在两者不同的情况下进行更新。这样在使得更新策略与访问行为相符合的情况下,还可以尽量减少更新缓存策略的次数,避免了高频率更新缓存策略给系统带来的压力。

在本发明的另一个实施例中,所述根据所述读写计数比更新所述缓存数据对应缓存的缓存策略之后还包括:

S400、将记录的被读次数及更新次数归零。

具体地,在根据读写比对缓存策略进行更新后,将记录的所述缓存数据的被读次数及更新次数归零,即从新开始记录所述缓存数据被读次数及更新次数归零。这样可以准确的反应预设时间间隔内缓存数据被读写的准确情况,进而提高缓存策略的准确性。

本发明还提供了一种自适应更新缓存策略的系统,如图2所示,其包括:

记录模块100,用于对业务层的缓存数据进行监控,并分别记录所述缓存数据在预设时间间隔内被读写的次数;

计算模块200,用于根据所述缓存数据被读写的次数计算读写计数比;

更新模块300,用于根据所述读写计数比更新所述缓存数据对应缓存的缓存策略。

所述自适应更新缓存策略的系统,其中,所述更新模块具体包括:

比较单元,用于将所述读写计数比与预设读写比阈值进行比较;

第一更新单元,用于当所述读写计数比大于等于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第一缓存策略;

第二更新单元,用于当所述读写计数比小于预设读写比阈值时,将所述缓存数据对应缓存的缓存策略更新为第二缓存策略。

所述自适应更新缓存策略的系统,其中,所述第一缓存策略为写更新策略;所述第二缓存策略为写失效策略。

所述自适应更新缓存策略的系统,其中,所述计算模块具体包括:

读取单元,用于读取所述缓存数据的被读次数及更新次数;

计算单元,用于将所述缓存数据的被读次数与更新次数相除以得到读写计数比。

所述自适应更新缓存策略的系统,其还包括:

归零模块,用于将记录的被读次数及更新次数归零。

上述自适应更新缓存策略的系统的各个模块在上述方法中已经详细说明,在这里就不再一一陈述。

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

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

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

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

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