数据缓存方法和装置的制作方法

文档序号:6460216阅读:153来源:国知局
专利名称:数据缓存方法和装置的制作方法
技术领域
本发明涉及数据存储技术,尤其涉及一种数据緩存方法和装置。
背景技术
随着数据库技术的不断成熟,数据库的存储量日趋巨大,从而可以为用户 提供更加丰富的数据服务,用户可从数据库中获取所需的数据。实际应用中, 对于用户需求量大的系统,如一个日访问量达到百万级的网站,由于每个用户 的爱好、需求不尽相同,在单位时间内,需要处理大量的数据分析和访问工作, 对系统性能和用户浏览速度也会造成影响,给用户的数据浏览造成瓶颈。
为解决上述问题,现有技术将用户需要浏览的数据初始化到内存中緩存起 来,用户访问网站时可从内存中获取数据。现有技术的数据缓存方式如图1所 示,将数据库中所存储的用户终端需要浏览的数据初始化到内存中进行緩存, 当数据库中的数据发生更新时,通过外部接口对内存中的相应数据进行刷新, 用户终端向页面发送访问请求后,页面从内存中获取用户终端所需数据进行加 载,然后将加载的数据返回给用户终端。现有技术的数据缓存方式可提高用户 终端浏览速度,但是由于内存资源始终是有限的,当数据量非常大的时候,容
易造成内存资源不足,导致系统的稳定性降低;也常会出现内存中的一部分数 据始终不被用户终端浏览的情况,导致内存资源的使用混乱,造成内存资源的 浪费,使得内存的使用效率较低。

发明内容
有鉴于此,本发明的主要目的在于提供一种数据缓存方法和装置,以解决 现有技术的数据緩存方法对内存的使用效率较低的问题。 为达到上述目的,本发明的技术方案是这样实现的本发明提供了一种数据緩存方法,包括
记录内存中所存储各数据的容量大小、刷新次数和命中次数中的至少 一种
信息;
根据设置的量化指标以及所记录的信息对所述内存数据进行清理。 所述量化指标为内存存储空间上限和数据命中次数下限中的至少 一种。
所述对内存数据进行清理为根据所记录内存各数据的容量大小得到所述 内存中存储数据的总容量大小;将所述数据总容量大小与所设置量化指标中的 内存存储空间上限进行比较;当数据总容量大小超出内存存储空间上限时,将 所述内存中容量较大的数据卸载。
所述对内存数据进行清理为将所述各数据的命中次数与所设置量化指标 中的数据命中次数下限进行比较;根据比较结果将所述内存中命中次数低于命 中次数下限的数据卸载。
所述记录内存中所存储各数据的容量大小、刷新次数和命中次数中的至少 一种信息之后,该方法还包括对所记录内存中各数据的信息进行比较,将容 量大、刷新次数高和命中次数高的数据靠前排列。
本发明还提供了一种数据緩存装置,包括相互连接的信息记录单元和数 据清理单元;其中,
所述信息记录单元,用于记录内存中所存储数据的容量大小、刷新次数和 命中次数中的至少 一种信息提供给所述数据清理单元;
所述数据清理单元,用于根据设置的量化指标以及所记录的信息对所述内 存数据进行清理。
所述数据清理单元进一步包括数据总容量获取子单元、比较子单元和数 据卸载子单元;其中,
所述数据总容量获取子单元,用于根据所记录内存各数据的容量大小得到 所述内存中存储数据的总容量大小提供给所述比较子单元;
所述比较子单元,用于将所述数据总容量大小和各数据的命中次数,分別 与所设置量化指标中的内存存储空间上限和数据命中次数下限进行比较,并将
5比较结果提供给所述数据卸载子单元;
所述数据卸载子单元,用于根据比较结果将所述内存中命中次数低于命中 次数下限的数据,和数据总容量大小超出内存存储空间上限时容量较大的数据 卸载。
所述装置还包括排序单元,连接所述信息记录单元,用于对所述内存中 的数据进行排列,将容量大、刷新次数高和命中次数高的数据靠前排列。
本发明所提供的数据緩存方法和装置,通过配置内存的量化指标,根据量 化指标对内存的存储空间大小进行控制;通过记录内存中数据容量大小、刷新 次数和命中次数,当内存的存储空间达到上限时,将内存中容量大的数据卸载, 并通过腐烂搜索将用户终端访问量少的数据卸载,从而减少了内存资源损耗, 提高了内存的使用效率和系统的稳定性。


图1为现有技术的数据緩存示意图2为本发明 一种数据緩存方法的流程图3为本发明实施例的网站访问系统的数据緩存示意图4为本发明实施例的数据緩存方法的流程图5为本发明一种数据緩存装置的组成结构示意图。
具体实施例方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。 如图2所示,图2为本发明一种数据缓存方法的流程图,主要包括以下步

步骤201,记录内存中所存储各数据的容量大小、刷新次数和命中次数中 的至少一种信息。
所谓容量大小是指数据所需占用内存的存储空间大小,当内存从数据库中 获取数据时,即记录下对应数据的容量大小;所谓刷新是指数据库中的数据发
6生更新时,数据库通过外部接口对内存中的对应数据进行更新的过程,内存中 数据每更新一次,则记录的对应数据的刷新次数就增加一;所谓命中次数是指 用户终端对内存中数据的调用次数,内存中数据每被调用一次,则记录的对应 数据的命中次数增加一。内存对上述各数据的容量大小、刷新次数和命中次数 中的至少 一种信息进行记录并存储。
步骤202,根据设置的量化指标以及所记录的信息对内存数据进行清理。 用户可根据实际需要设置量化指标,并将所设置的量化指标以配置文件的 形式存储在内存中,以供内存读取。量化指标中规定了内存中可用来存储数据 的存储空间上限和数据命中次数下限等信息中的至少 一种,所谓存储空间上限 是指可用来进行数据存储的最大存储空间;所谓数据命中次数下限是指数据被 命中的最低次数。
数据清理的方式包括周期性清理和条件触发清理等,周期性清理如通过 在内存中设置定时器,周期性的对内存所存数据进行腐烂搜索,将所存各数据 的命中次数与所设置量化指标中的数据命中次数下限进行比较,并根据比较结 果将命中次数低于命中次数下限的数据和/或刷新次数远大于命中次数的数据 卸载;条件触发清理如内存根据所记录各数据的容量大小得到内存中存储数 据的总容量大小,并将得到的数据总容量大小与所设置量化指标中的内存存储 空间上限进行比较,在数据总容量大小超出内存存储空间上限的条件下,将内 存中容量较大的数据卸载。
上述图2所示的数据緩存方法适用于内存受限的系统中,如网站访问系统。 下面以图3所示的网站访问系统为例,并结合图4所示用户终端访问网站的过 程对本发明实施例的数据緩存方法进一步详细描述,图3所示的网站访问系统 相比图1所示现有技术的网站访问系统,增设了回收空间,用于内存中数据的 卸载,图4所示实施例的数据緩存方法主要包括以下步骤
步骤401,读取配置文件,申请数据存储空间,初始化各个量化指标。
内存读取配置文件,通过解析得到配置文件中的量化指标,并初始化各个 量化指标,量化指标中包括内存存储空间上限和数据命中次数下限等信息。内
7存根据量化指标中的内存存储空间上限申请数据存储空间,将数据存储空间划 分为多个数据块,用以对从数据库中获取的数据进行分块存储,各数据块的存 储空间可设为相同,也可设为不同。
步骤402,内存接收用户终端发送的数据请求。
用户终端通过访问网站时,通过页面向内存发送数据请求,该数据请求中 包括用户终端需要访问的数据信息。
步骤403,查找内存中是否存在用户终端所需访问的数据,如果存在,则 将对应数据的命中次数加一,并转到步骤408;如果不存在,则转到步骤404。
步骤404,从数据库中获取用户终端所需数据,并将获取的数据加载到内 存中,计算所获取数据的容量大小。
步骤405,检查数据总容量大小是否超过内存存储空间上限,如果超过, 则转到步骤406;否则,转到步骤407。
内存根据所记录各数据的容量大小得到内存中存储数据的总容量大小,并 将得到的数据总容量大小与所设置量化指标中的内存存储空间上限进行比较, 从而判断数据总容量大小是否超过内存存储空间上限。
步骤406,执行空间限制清理。
内存将所存储数据中容量较大的数据卸载,放入回收空间中,并将所卸载 数据占用的存储空间释放。
步骤407,设置所获取数据的刷新次数和命中次数为零,并根据数据容量 大小、刷新次数和命中次数信息,将该数据插入到内存的数据列表中。
内存中所存数据是按照一定的原则进行排序,并以列表的形式进行存储的。 排序的原则为首先比较各数据的容量大小,将各数据按照容量由大到小的顺 序进行排列;如果存在容量大小相同的数据,则进一步比较这些容量大小相同 数据的刷新次数,将这些数据再按照刷新次数由高到低的顺序进行排列;如果 还存在刷新次数相同的数据,则进一步比较这些刷新次数相同数据的命中次数, 将这些数据继续按照命中次数由高到低的顺序进行排列。需要指出的是,本发 明的内存数据排序原则并非仅仅局限于上述的排序原则,实际应用中可根据需要对排序原则进行设置。
对于内存新获取的数据,则按照上述的排序原则与数据列表中的数据进行 比较,并将新获取的数据插入数据列表中的适当位置。
步骤408,内存将用户终端所需数据返回给用户终端。
另外,在上述图4所示的实施例中,内存对所存数据进行定时腐烂搜索, 将各数据的命中次数与所设置量化指标中的数据命中次数下限进行比较,并根 据比较结果将内存中命中次数低于命中次数下限的数据和/或刷新次数远大于 命中次数的数据卸载。
为实现上述本发明的数据緩存方法,本发明还提供了 一种数据緩存装置,
如图5所示,该装置包括信息记录单元100、数据清理单元200和排序单元 300。信息记录单元100,用于记录内存中所存储数据的容量大小、刷新次数和 命中次数中的至少一种信息提供给数据清理单元200。数据清理单元200,连接 信息记录单元100,用于根据设置的量化指标以及所记录的信息对内存数据进 行清理。排序单元300,连接信息记录单元100,用于对内存中的数据进行排列, 将容量大、刷新次数高和命中次数高的数据靠前排列。图5所示的数据緩存装 置设置于图3所示系统的内存中。
其中,数据清理单元200进一步包括数据总容量获取子单元210、比较 子单元220和数据卸载子单元230。数据总容量获取子单元210,用于根据所记 录内存各数据的容量大小得到内存中存储数据的总容量大小提供给比较子单元 220。比较子单元220,连接数据总容量获取子单元210,用于将数据总容量大 小和各数据的命中次数,分别与所设置量化指标中的内存存储空间上限和数据
命中次数下限进行比较,并将比较结果提供给数据卸载子单元230。数据卸载 子单元230,连接比较子单元220,用于根据比较结果将内存中命中次数低于命 中次数下限的数据,和数据总容量大小超出内存存储空间上限时容量较大的数 据卸载。
综上所述,本发明的数据緩存方法和装置,通过记录内存中数据容量大小、 刷新次数和命中次数,当内存的存储空间达到上限时,将内存中容量大的数据
9卸载,并通过腐烂搜索将用户终端访问量少的数据卸载,从而减少了内存资源 损耗,提高了内存的使用效率和系统的稳定性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种数据缓存方法,其特征在于,包括记录内存中所存储各数据的容量大小、刷新次数和命中次数中的至少一种信息;根据设置的量化指标以及所记录的信息对所述内存数据进行清理。
2、 根据权利要求1所述数据緩存方法,其特征在于,所述量化指标为内存 存储空间上限和数据命中次数下限中的至少 一种。
3、 根据权利要求l或2所述数据缓存方法,其特征在于,所述对内存数据 进行清理为根据所记录内存各数据的容量大小得到所述内存中存储数据的总 容量大小;将所述数据总容量大小与所设置量化指标中的内存存储空间上限进 行比较;当数据总容量大小超出内存存储空间上限时,将所述内存中容量较大 的数据卸载。
4、 根据权利要求l或2所述数据緩存方法,其特征在于,所述对内存数据 进行清理为将所述各数据的命中次数与所设置量化指标中的数据命中次数下载。
5、 根据权利要求1或2所述数据緩存方法,其特征在于,所述记录内存中 所存储各数据的容量大小、刷新次数和命中次数中的至少一种信息之后,该方 法还包括对所记录内存中各数据的信息进行比较,将容量大、刷新次数高和 命中次数高的数据靠前排列。
6、 一种数据緩存装置,其特征在于,包括相互连接的信息记录单元和数 据清理单元;其中,所述信息记录单元,用于记录内存中所存储数据的容量大小、刷新次数和 命中次数中的至少一种信息提供给所述数据清理单元;所述数据清理单元,用于根据设置的量化指标以及所记录的信息对所述内 存数据进行清理。
7、 根据权利要求6所述数据緩存装置,其特征在于,所述数据清理单元进一步包括数据总容量获取子单元、比较子单元和数据卸载子单元;其中, 所述数据总容量获取子单元,用于根据所记录内存各数据的容量大小得到所述内存中存储数据的总容量大小提供给所述比较子单元;所述比较子单元,用于将所述数据总容量大小和各数据的命中次数,分别与所设置量化指标中的内存存储空间上限和数据命中次数下限进行比较,并将比较结果提供给所述数据卸载子单元;所述数据卸载子单元,用于根据比较结果将所述内存中命中次数低于命中次数下限的数据,和数据总容量大小超出内存存储空间上限时容量较大的数据卸载。
8、 根据权利要求6或7所述数据緩存装置,其特征在于,所述装置还包括 排序单元,连接所述信息记录单元,用于对所述内存中的数据进行排列,将容 量大、刷新次数高和命中次数高的数据靠前排列。
全文摘要
本发明公开了一种数据缓存方法,包括记录内存中所存储数据的容量大小、刷新次数和命中次数中的至少一种信息;根据设置的量化指标以及所记录的信息对内存数据进行清理。本发明还提供了一种数据缓存装置,通过配置内存的量化指标,根据量化指标对内存的存储空间大小进行控制;通过记录内存中数据容量大小、刷新次数和命中次数,当内存的存储空间达到上限时,将内存中容量大的数据卸载,并通过腐烂搜索将用户终端访问量少的数据卸载,从而减少了内存资源损耗,提高了内存的使用效率和系统的稳定性。
文档编号G06F17/30GK101493821SQ20081005691
公开日2009年7月29日 申请日期2008年1月25日 优先权日2008年1月25日
发明者叶小伟 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1