一种内存数据处理的方法和装置与流程

文档序号:16609029发布日期:2019-01-14 21:25阅读:162来源:国知局
一种内存数据处理的方法和装置与流程

本申请涉及计算机技术领域,尤其涉及一种内存数据处理的方法和装置。



背景技术:

目前,对于用户采用电子设备操作数据,为了提高操作数据的操作效率和响应速度,一般是将保存在物理数据库的数据加载到内存数据库中,用户只需要操作内存数据库的数据即可。其中,内存数据库的基本工作原理是将数据保存在内存中,减少操作数据时与物理数据库的交互,以提高数据的读写速度。

随着信息技术行业的快速发展,信息量越来越大,物理数据库通常具有海量数据,这些海量数据均加载到内存数据库,很容易出现内存不足的情况。现有技术中采用从物理数据库只加载部分数据到内存数据库的方式解决内存不足的问题。

但是,发明人经过研究发现,现有技术的方式仍然有部分数据只在物理数据库中,如果用户访问的是这些数据,还是需要从物理数据库加载到内存数据库,进而造成内存不足、需要清理内存、访问数据响应慢的后果,达不到基于内存快速访问数据的目的。



技术实现要素:

本申请所要解决的技术问题是,提供一种内存数据处理的方法和装置,提供更多的内存将用户访问的不在内存数据库中的数据从物理数据库中加载到内存数据库中,避免内存不足的问题。最终内存数据库中基本上都是使用率较大的数据,从而提升用户访问数据的访问效率及响应速度。

第一方面,本申请实施例提供了一种内存数据处理的方法,该方法包括:

统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;

当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。

优选的,所述统计内存数据库中数据的使用率,具体为:

采用两个独立线程分别从所述内存数据库的数据两端向中间统计数据的使用率。

优选的,所述使用率是指访问总次数与第一次访问时间和最近一次访问时间的时间间隔的比值百分数。

优选的,所述预设清除条件为所述内存数据库的数据量大于内存阈值或清除休眠时间超过预设时间。

优选的,还包括:

响应于访问数据的操作,若所述数据在所述内存数据库中,记录所述数据的访问次数和对应的访问时间;

若所述数据不在所述内存数据库中,将所述数据从物理数据库加载到所述内存数据库,并添加记录所述数据的访问次数和对应的访问时间。

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

统计单元,用于统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;

清除单元,用于当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。

优选的,所述统计单元具体用于:

采用两个独立线程分别从所述内存数据库的数据两端向中间统计数据的使用率。

优选的,所述使用率是指访问总次数与第一次访问时间和最近一次访问时间的时间间隔的比值百分数。

优选的,所述预设清除条件为所述内存数据库的数据量大于内存阈值或清除休眠时间超过预设时间。

优选的,还包括访问单元,用于:

响应于访问数据的操作,若所述数据在所述内存数据库中,记录所述数据的访问次数和对应的访问时间;

若所述数据不在所述内存数据库中,将所述数据从物理数据库加载到所述内存数据库,并添加记录所述数据的访问次数和对应的访问时间。

与现有技术相比,本申请至少具有以下优点:

采用本申请实施例的技术方案,统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。由此可见,基于内存数据库中数据的使用率,在满足预设清除条件下,清除内存数据库中使用率低的数据,以便提供更多的内存将用户访问的不在内存数据库中的数据从物理数据库中加载到内存数据库中,避免内存不足的问题。基于该方式,最终内存数据库中基本上都是使用率较大的数据,从而提升用户访问数据的访问效率及响应速度。

附图说明

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

图1为本申请实施例中一种应用场景所涉及的系统框架示意图;

图2为本申请实施例提供的一种内存数据处理的方法的流程示意图;

图3为本申请实施例提供的两个独立线程统计内存数据库中数据的使用率方向的示意图;

图4为本申请实施例提供的一种内存数据处理的装置的结构示意图。

具体实施方式

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

发明人经过研究发现,一般是将存储在物理数据库的数据加载到内存数据库中,以便提高用户采用电子设备操作数据的效率和响应速度。随着信息技术行业的快速发展,信息量越来越大,物理数据库通常具有海量数据需加载到内存数据库,容易出现内存不足的情况。现有技术中采用只从物理数据库加载部分数据到内存数据库的方式解决内存不足的问题。但是,该方式仍然有部分数据只在物理数据库中,如果用户访问的是这些数据,还是需要从物理数据库加载到内存数据库,进而造成内存不足、需要清理内存、访问数据响应慢的后果,达不到基于内存快速访问数据的目的。

为了解决这一问题,在本申请实施例中,统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。由此可见,基于内存数据库中数据的使用率,在满足预设清除条件下,清除内存数据库中使用率低的数据,以便提供更多的内存将用户访问的不在内存数据库中的数据从物理数据库中加载到内存数据库中,避免内存不足的问题。基于该方式,最终内存数据库中基本上都是使用率较大的数据,从而提升用户访问数据的访问效率及响应速度。

举例来说,本申请实施例的场景之一,可以是应用到如图1所示的场景中,该场景包括处理器101、内存数据库102和物理数据库103。处理器101将物理数据库103中的部分数据加载到内存数据库102,当用户进行访问数据操作时,若数据在内存数据库102直接进行访问,若数据不在内存数据库102,处理器101将该数据从物理数据库103加载到内存数据库102。重点在于处理器101统计内存数据库102中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;当满足预设清除条件时,处理器101清除所述内存数据库102中所述使用率小于预设值的数据,避免出现内存不足的情况,使得内存数据库102中基本上都是使用率较大的数据,以提升数据访问效率及响应速度。

可以理解的是,在上述应用场景中,虽然将本申请实施方式的动作描述由处理器101执行,但是,本申请在执行主体方面不受限制,只要执行了本申请实施方式所公开的动作即可。

可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。

下面结合附图,通过实施例来详细说明本申请实施例中内存数据处理的方法和装置的具体实现方式。

示例性方法

参见图2,示出了本申请实施例中一种内存数据处理的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:

步骤201:统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的。

另需要说明的是,由于内存数据库中仅仅加载了部分物理数据库中的数据,则对于访问数据操作而言,访问的数据可能在内存数据库中,也可能不在内存数据库中。当访问的数据在内存数据库,可直接进行数据访问,不需要与物理数据库进行交互,在该数据原访问记录中访问次数的基础上加1,并记录对应的访问时间;当访问的数据不在内存数据库,需要与物理数据库进行交互,将该数据从物理数据库加载到内存数据库才能进行访问操作,并添加对应该数据的访问记录,记录该数据的访问次数和对应的访问时间,基于上述方式每次访问数据均记录数据的访问次数和访问时间,以便执行步骤201。因此,在本实施例的一些实施方式中,还包括:响应于访问数据的操作,若所述数据在所述内存数据库中,记录所述数据的访问次数和对应的访问时间;若所述数据不在所述内存数据库中,将所述数据从物理数据库加载到所述内存数据库,并添加记录所述数据的访问次数和对应的访问时间。

可以理解的是,内存数据库中数据是从物理数据库中加载的,加载数据的目的为了方便用户直接进行访问操作,提高数据的访问效率的响应速度,因此,内存数据库中数据基于其访问次数和对应的访问时间,可以得到其对应的使用率,用以表示目前内存数据库中数据的是否经常被访问使用。

其中,需要说明的是,一般来说可以采用单线程统计内存数据库中数据的使用率,但是考虑到统计数据使用率的速度与效率,可以采用两个相互独立法的双线程统计数据的使用率,相较于单线程而言,采用双线程可以提升统计的速度与效率;而且考虑到降低统计同一数据、抢同步锁的机率,两个相互独立法的双线程可以分别从内存数据库的数据两端开始依次往中间方向进行数据使用率的统计。因此,在本实施例的一些实施方式中,所述步骤201例如具体可以为:采用两个独立线程分别从所述内存数据库的数据两端向中间统计数据的使用率。例如,如图3所示的两个独立线程统计内存数据库中数据的使用率方向的示意图,其中,内存数据库中数据头端为a、数据尾端为b,独立线程m从数据头端a开始依次往中间方向进行数据使用率的统计,独立线程n从数据尾端b开始依次往中间方向进行数据使用率的统计。

还需要说明的是,本实施例中数据的使用率是指数据被访问的频繁程度,具体地:首先,确定数据的第一次访问和最近一次访问的时间间隔,然后,确定这段时间内数据的访问总次数,最后,确定访问总次数与时间间隔的比值百分比为数据的使用率。即,在本实施例的一些实施方式中,所述使用率是指访问总次数与第一次访问时间和最近一次访问时间的时间间隔的比值百分数。假设使用率为a,访问次数为n,第一次访问时间为t1和最近一次访问时间为t2,则使用率的公式如下所示:

步骤202:当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。

可以理解的是,预先设置一个预设值,表示数据使用率最低阈值,该预设值是基于不同的数据访问业务场景灵活设置的。若数据的使用率小于该预设值代表该数据机器不经常被访问使用,当满足预设清除条件时,应该将该数据从内存数据库清除出去,以便给用户想要访问的却不在内存数据库中的数据提供内存空间。基于用户访问数据的机制,采用该方式一段时间后,使用率较小的数据基本被清除出内存数据库,保留使用率较大的数据,从而既能避免内存不足的问题,也可以在内存数据库中保存用户经常需要访问的数据,以提升用户访问数据的访问效率及响应速度。

需要说明的是,一直不停地进行清除操作也会占用太多的处理器资源,因此,可以设置预设清除条件,只有当满足预设清除条件,处理器才进行清除操作,从而使得其它应用程序有更高的访问内存数据库中数据的机会,提高了访问操作的响应速度。例如,当内存数据库的内存空间较小时,即,内存数据库的数据量大于某个设定的内存阈值,才进行清除操作。又如,设定一个预设时间,在前一次清除操作完成后进行清除休眠,当清除休眠时间达到该预设时间时,再次进行清除操作,即,定时清除。因此,在本实施例的一些实施方式中,所述预设清除条件为所述内存数据库的数据量大于内存阈值或清除休眠时间超过预设时间。比如,内存数据库的数据量已达到总内存的80%,或者,距离上次清除操作完成清除休眠时间已经超过10min。

还需要说明是,内存数据库基于物理数据库同步刷新,即,若物理数据库中数据发生修改,内存数据库中相对应的数据也需要进行刷新修改。

通过本实施例提供的各种实施方式,统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。由此可见,基于内存数据库中数据的使用率,在满足预设清除条件下,清除内存数据库中使用率低的数据,以便提供更多的内存将用户访问的不在内存数据库中的数据从物理数据库中加载到内存数据库中,避免内存不足的问题。基于该方式,最终内存数据库中基本上都是使用率较大的数据,从而提升用户访问数据的访问效率及响应速度。

示例性设备

参见图4,示出了本申请实施例中一种内存数据处理的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:

统计单元401,用于统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;

清除单元402,用于当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。

可选的,所述统计单元401具体用于:

采用两个独立线程分别从所述内存数据库的数据两端向中间统计数据的使用率。

可选的,所述使用率是指访问总次数与第一次访问时间和最近一次访问时间的时间间隔的比值百分数。

可选的,所述预设清除条件为所述内存数据库的数据量大于内存阈值或清除休眠时间超过预设时间。

可选的,所述装置还包括访问单元,用于:

响应于访问数据的操作,若所述数据在所述内存数据库中,记录所述数据的访问次数和对应的访问时间;

若所述数据不在所述内存数据库中,将所述数据从物理数据库加载到所述内存数据库,并添加记录所述数据的访问次数和对应的访问时间。

通过本实施例提供的各种实施方式,统计单元用于统计内存数据库中数据的使用率,所述使用率是根据所述内存数据库中数据的访问次数和对应的访问时间得到的;清除单元用于当满足预设清除条件时,清除所述内存数据库中所述使用率小于预设值的数据。由此可见,基于内存数据库中数据的使用率,在满足预设清除条件下,清除内存数据库中使用率低的数据,以便提供更多的内存将用户访问的不在内存数据库中的数据从物理数据库中加载到内存数据库中,避免内存不足的问题。基于该方式,最终内存数据库中基本上都是使用率较大的数据,从而提升用户访问数据的访问效率及响应速度。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

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

以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。

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