数据存储方法及装置的制作方法

文档序号:6460284阅读:149来源:国知局
专利名称:数据存储方法及装置的制作方法
技术领域
本发明涉及移动通信领域,尤其涉及一种数据存储方法及装置。
技术背景目前,为了提高系统处理复杂业务的效率,常采用数据緩存机制,即定 时地从数据库中把常用业务表中的所有业务数据读取到内存中,并把该类业 务数据长时间的保存在内存中,再进行逻辑运算,以减少在大量的数据库读取动作中因1/0操作引起的性能损耗。现有的緩存机制的处理过程,主要包括数据緩存和緩存刷新。数据緩存主要指数据在内存中常驻,内存以ArrayList、 HashMap等方式 存储所有的业务数据,常见为全量存储的方式。如图1所示,为现有技术数据 获取流程图,因为数据为全量存储,随着业务量的增加,需要緩存的业务数 据越来越多,获取数据时需要查找緩存的全部数据,因此服务器的负担越来 越重,服务器的性能不能及时提高,致使緩存中内存占用不可控。緩存刷新主要指对业务数据进行更新,当业务数据在内存中有更新 时,系统及时的刷新该业务数据,并将刷新的该业务数据保存到緩存中, 常见为全量刷新的方式。在进行逻辑运算时,需要在大量的业务数据中寻 找出有用的业务信息,緩存数据量越大,则寻找的过程越繁瑣,无用的消 耗越多,因此系统对业务的处理性能随緩存数据量的增大急剧下降。如图 2所示,为现有技术数据更新流程图,在緩存数据中有更新时,全量刷新的 方式需要能够及时的对数据进行刷新,所以緩存数据的更新运行频率很 高,在全量的数据緩存时,每次緩存更新均需要从数据库中读取所有的数 据进行更新,造成数据库I/O的长时间被占用。在发明人实施本发明的过程中,发现现有技术至少存在以下问题全 量存储的緩存方式使得服务器在进行复杂运算时,常因内存占用量急剧上 升导致服务器宕机,风险较大。另一方面,全量刷新的更新方式使得系统 资源浪费严重。发明内容本发明实施例提供一种数据存储方法,以解决现有技术数据全量緩存和 全量刷新带给服务器的风险较高以及系统资源浪费严重等缺陷。根据本发明实施例提供一种数据存储方法,该方法具体包括当所需获取的业务数据的业务类型不在与该业务数据对应的緩存数据表 的数据列表中时,根据所述緩存数据表判断緩存是否已达到最大容量;当所述緩存已达到最大容量时,删除所述緩存中的部分或全部业务数据, 将该所需获取的业务数据存储在所述緩存中,并将该所需获取业务数据的业 务类型加载到所述数据列表中。本发明实施例提供一种数据存储装置,以解决现有技术数据全量緩存和 全量刷新带给服务器的风险较高以及系统资源浪费严重的缺陷。根据本发明实施例提供一种数据存储装置,该装置具体包括容量判断模块,用于当所需获取的业务数据的业务类型不在与其对应的 緩存数据表的数据列表中时,根据所述緩存数据表判断緩存是否已达到最大容量;数据存储模块,用于当所述緩存已达到最大容量时,删除所述緩存中的 部分或全部业务数据,将该所需获取的业务数据存储在所述緩存中,并将该 所需获取业务数据的业务类型加载到所述数据列表中。本发明实施例提供的数据存储方法和数据存储装置,通过设置业务数 据在緩存中存储的最大容量,对业务数据进行部分緩存;并在对緩存进行 存储业务数据前先进行最大容量判断,从而有效控制了緩存所占用的内存的空间,緩解了服务器的压力;同时节约了系统资源,提高了服务器的效 率。


图1为现有技术数据获取流程图; 图2为现有技术数据更新流程图3为本发明实施例提供的数据存储方法实施例一流程图; 图4为本发明实施例提供的数据存储方法实施例二流程图; 图5为本发明实施例提供的数据存储方法实施例三流程图; 图6为本发明实施例提供的数据存储装置结构示意图。
具体实施例方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 图3为本发明卖施例提供的数据存储方法实施例一流程图,具体步骤包

步骤100、预先建立与业务数据对应的缓存数据表,其包括该业务数 据的存储最大容量以及该业务数据对应业务类型的数据列表;
在本发明实施询中,每类业务数据对应一个緩存数据表,緩存数据表 中存储该类业务数据在緩存中可存储的存储最大容量,使得本发明实施例 中緩存对业务数据的存储为定量存储,有效控制了緩存所占用的内存的空 间,减少了服务器和内存的压力。
步骤110、判^所需获取的业务数据的类型是否存在于与其对应的緩存 数据表的数据列表中,是则执行步骤120;否则执行步骤lll;
步骤lll、从缓存中获取所需获取的业务数据;
步骤120、根据緩存数据表判断緩存是否已达到最大容量;是则执行步 骤130;否则执行步kl40;在本发明实施例中,根据缓存数据表中的该类业务数据在緩存中存储最 大容量对緩存进行判断。
步骤130、删除緩存中的部分或全部业务数据,执行步骤140;
步骤140、将该所需获取的业务数据存储在緩存中,并将该业务数据的 业务类型加载到数据列表中。
本发明实施例通过创建与业务数据对应的緩存数据表,给緩存设置存 储每种业务数据的最大容量,对业务数据进行部分缓存,并在对缓存进行 加载数据前先进行蕞大容量判断,从而有效控制了緩存所占用的内存的空 间,緩解了服务器的压力;同时节约了系统资源,提高了服务器的效率。
图4为本发明实施例提供的数据存储方法实施例二流程图;具体步骤包

步骤200、预^建立与业务数据对应的緩存数据表,其包括该业务数 据的存储最大容量以及该业务数据对应业务类型的数据列表;
优选的,本发明实施例緩存数据表中还可以进一步地存储与业务数据 对应的緩存数据表名称。这样,由于业务数据与緩存数据表是对应的关系, 因此可以根据緩存数据表的名称,很容易的查找到所需获取的业务数据。
步骤210、根据所需获取的业务数据与緩存数据表名称判断该业务数据 对应的緩存数据表是否存在,是则执行220,否则执行211;
在本实施例中,由于事实上并不一定每类业务数据对应的緩存数据表都 已经被创建,所以优选地,本实施例对数据緩存表是否存在先进行判断。
步骤211、初始化以获得与该业务数据对应的緩存数据表;
步骤220、判断所需获取的该业务数据的业务类型是否存在于与其对应 的緩存数据表的数据列表中,是则执行步骤230;否则执行步骤221;
步骤221、.从緩存中获取该所需获取的业务数据;
步骤230、根据緩存数据表判断緩存是否已达到最大容量;是则执行步 骤240;否则执行步骤250;在本发明实施例中,由于緩存数据表还包括业务数据在緩存中的存储最
大容量,所以步骤2'30处可根据最大容量来判断緩存对该业务数据的存储是
否已达到最大容量。
步骤240、按照最旧最少用原则删除该原则对应的緩存中的业务数据;
本实施例中,既可以采用最旧原则删除该原则对应的业务^:据,也可以 按照最少用原则来删除对应的业务数据,优选地,采用最旧最少用原则删除 该原则对应的业务数据。事实上,也可以根据所需获取的业务数据的数量来 对緩存中的业务数据进行删除,比如所需获取的业务数据为5条,则删除緩 存中的5条业务数据,等等其它删除原则。
步骤250、将所需获取的业务数据存储到緩存中,并将该条业务数据的 业务类型加载到数据列表中;
图5为本发明实施例提供的数据存储方法实施例三流程图;具体步骤包括
步骤300、预先建立与业务数据对应的,包括该业务数据的存储最大 容量和该业务数据对应业务类型的数据列表的緩存数据表;
优选的,本发明实施例緩存数据表中还可以进一 步地存储与业务数据 对应的緩存数据表名称。这样,由于业务数据与緩存数据表是对应的关系, 因此可以根据緩存数据表的名称,很容易的查找到所需的业务数据。
步骤310、根据所需获取的业务数据与緩存数据表名称判断该业务数据 对应的緩存数据表是否存在,是则执行320,否则执行311;
在本实施例中,由于事实上并不一定每类业务数据对应的緩存数据表都 已经被创建,所以优选地,本实施例对数据緩存表是否存在先进行判断。
步骤311、初始化以获得该业务数据对应的緩存数据表;
步骤320、判断所需获取的该条业务数据的业务类型是否存在于与其对 应的緩存数据表的数据列表中,是则执行步骤330;否则执行步骤321;
步骤321、.从緩存中获取所需获取的业务数据;步骤330、判断所需获取的业务数据是否存在于数据库中,是则执行步 骤340,否则执行步骤331;
本发明实施例中,因为业务数据在緩存中的存储受设置的最大容量的限 制,为局部緩存,所以当数据列表中并没有所需的业务数据时,所需业务数 据有可能存在于数据库中,所以优选的,判断所需业务数据是否存在于数据 库中。
步骤331、结束;
步骤340、根据缓存数据表判断緩存是否已达到最大容量;是则执行步 骤350;否则执行步骤360;
在本发明实施例中,由于緩存数据表还存储了业务数据在緩存中的存储 最大容量,所以优选的,步骤340处可根据存储最大容量来判断緩存对该所 需的业务数据的存储'是否已达到最大容量。
步骤350、按照最旧最少用原则删除该原则对应的緩存中的业务数据;
本实施例中,既可以采用最旧原则删除该原则对应的业务数据,也可以 按照最少用原则来删除对应的业务数据,优选地,采用最旧最少用原则删除 该原则对应的业务数据。事实上,也可以根据所需获取的业务数据的数量来 对緩存中的业务数据进行删除,比如所需获取的业务数据为5条,则删除缓 存中的5条业务数据,等等其它删除原则。
步骤360、将所需获取的业务数据从数据库中存储到緩存中,并将该条 业务数据的类型加载到数据列表中;
步骤370、判断当前存储在緩存中的业务数据是否有被修改的,是则执 行步骤380;
步骤38 0、对当前存储在緩存中的被修改的业务数据进行更新。 在本发明实施例中,优选的,对当前存储在緩存中的^皮修改的业务数据 进行更新,没有被修改的,以及新增的业务数据,都不进行更新。
本发明实施例提供的方法,能够实现对数据的局部緩存,节约系统资源,提高服务器的效率。
图6为本发明实施例提供的数据存储装置结构示意图,如图6所示,本 发明实施例包括緩存数据表,数据列表判断模块,容量判断模块和数据存储 模块。其中緩存数据表,与业务数据对应,包括该业务数据的存储最大容 量和该业务数据对应业务类型的数据列表。
数据列表判断模块,用于判断所需获取的业务数据的业务类型是否存在 于与其对应的緩存数据表的数据列表中。
容量判断模块,用于当所需获取的业务数据的业务类型不在与其对应的 緩存数据表的数据列表中时,根据緩存数据表判断緩存是否已达到最大容量。
数据存储模块,用于当緩存已达到最大容量时,按照最旧和/或最少用原 则删除该原则对应的业务数据,将该所需获取的业务数据存储在緩存中,并 将所需获取的业务数据的业务类型加载到数据列表中。
通过本发明实施例提供的装置能够实现对数据的局部缓存,本发明简单 易行,提高了服务器的效率,节约了系统资源。
进一步地,本发明实施例緩存数据表还可以包括与业务数据对应的緩存 数据表名称。本发明实施例提供的装置还包括缓存数据表判断模块,用 于根据所需获取的业务数据与緩存数据表名称判断该业务数据对应的緩存 数据表是否存在。緩存数据表获取模块,用于根据所需的业务数据与所述緩 存数据表名称获取业务数据对应的緩存数据表,当所述缓存数据表不存在 时,初始化与该业务数据对应的緩存数据表。
进一步地,本发明实施例还包括数据获取模块,用于当所需获取的业务 数据的业务类型存在于与其对应的緩存数据表的数据列表中时,从緩存中获 取所需获取的业务数据。
数据判断模块,用于判断所需获取的该条业务数据是否存在于数据库中。
数据加载模块,,用于当緩存还未达到最大容量时,将所需获取的业务数 据存储到緩存中,并将该业务数据的业务类型加载到数据列表中。更进一步地,本实施例还可以包括修改数据判断模块,用于判断当前 存储在緩存中的业务数据是否被修改。更新模块,用于对当前存储在緩存中的被修改的业务数据进行更新,对 所述緩存中新增加的'业务数据不进行更新。本发明实施例提供的装置结构简单,易于实现,通过设置各类数据在 緩存数据表中的最大容量,提高了服务器的效率,节约了资源。本发明实 施例提供的装置还可以对数据进行局部更新。本领域普通技永人员可以理解实现上述方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机 可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤; 而前述的存储介质包括R0M、 RAM、石兹碟或者光盘等各种可以存储程序代 码的介质。 '最后应说明的是以上实施例仅用以说明本发明的4支术方案,而非对 其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解其依然可以对前述实施例所记载的技术方案进行修 改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不 使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
权利要求
1.一种数据存储方法,其特征在于该方法具体包括当所需获取的业务数据的业务类型不在与该业务数据对应的缓存数据表的数据列表中时,根据所述缓存数据表判断缓存是否已达到最大容量;当所述缓存已达到最大容量时,删除所述缓存中的部分或全部业务数据,将该所需获取的业务数据存储在所述缓存中,并将该所需获取业务数据的业务类型加载到所述数据列表中。
2. 根据权利要求l所述的数据存储方法,其特征在于预先建立与业务 数据对应的,包括该业务数据的存储最大容量和该业务数据对应业务类型 的数据列表的缓存敎据表,所述緩存数据表还存储与业务数据对应的缓存 数据表名称。
3. 根据权利要求2所述的数据存储方法,其特征在于所述的数据存储 方法还包括根据所需获取的业务数据与緩存数据表名称获取该业务数据对 应的緩存数据表。
4. 根据权利要求3所述的数据存储方法,其特征在于所述根据所需获 取的业务数据与緩存数据表名称获取该业务数据对应的緩存数据表具体包 括根据所需获取的业务数据与緩存数据表名称判断该所需获取的业务数 据对应的緩存数据表是否存在,如果存在则获取所述所需获取的业务数据对 应的緩存数据表;如果不存在则初始化与所述所需获取的业务数据对应的缓 存数据表,并获得该緩存数据表。
5. 根据权利要求1所述的数据存储方法,其特征在于所述当所需获取 的业务数据的业务类型不在与其对应的缓存数据表的数据列表中时,具体包 括判断所需获取的业务数据的业务类型是否存在于与其对应的緩存数据表 的数据列表中,是则.从所述緩存中获取所述所需获取的业务数据。
6. 根据权利要求1所述的数据存储方法,其特征在于所述根据所述緩存数据表判断緩存是否已达到最大容量之后还包括当所述緩存未达到最大容量时,将该所需获取的业务数据存储在所述緩 存中,并将所述所需获取的业务数据的业务类型加栽到所述数据列表中。
7. 根据权利要求1所述的数据存储方法,其特征在于所述数据存储方 法还包括判断所述所需获取的业务数据是否存在于数据库中。
8. 根据权利要求1所述的数据存储方法,其特征在于所述删除所述緩 存中的部分或全部业务数据具体包括,按照最旧和/或最少用原则删除对应的 所述緩存中的业务数据。
9. 根据权利要求1-8所述任一的数据存储方法,其特征在于所述数据 存储方法还包括判断当前存储在所述緩存中的业务数据是否被修改,是则对被修改的业 务数据进行更新。
10. 根据权利要求1-8所述任一的数据存储方法,其特征在于还包括 对所述緩存中新增加的业务数据不进行更新。
11. 一种数据存储装置,其特征在于该装置具体包括容量判断模块,用于当所需获取的业务数据的业务类型不在与其对应的 緩存数据表的数据列表中时,根据所述緩存数据表判断緩存是否已达到最大容量;数据存储模块,用于当所述缓存已达到最大容量时,删除所述緩存中的 部分或全部业务数据,将该所需获取的业务数据存^f渚在所述缓存中,并将该 所需获取的业务数据的业务类型加载到所述数据列表中。
12. 根据权利要求il所述的数据存储装置,其特征在于预先建立与业 务数据对应的,包括该业务数据的存储最大容量和该业务数据对应业务类 型的数据列表的緩存数据表,所述緩存数据表还存储与业务数据对应的緩存数据表名称。
13. 根据权利要求12所述的数据存储装置,其特征在于还包括 緩存数据表判断模块,用于根据所需获取的业务数据与緩存数据表名称判断该业务数据对应的緩存数据表是否存在。
14. 根据权利要求12所述的数据存储装置,其特征在于还包括緩存数据表获取模块,用于根据所需获取的业务数据与所述緩存数据表 名称获取所述业务数据对应的緩存数据表,当所述緩存数据表不存在时,初 始化并获得緩存数据表。
15. 根据权利要求11所述的数据存储装置,其特征在于还包括 数据列表判断模块,用于判断所需获取的业务数据的业务类型是否存在于与其对应的緩存数据表的数据列表中。
16. 根据权利要求11所述的数据存储装置,其特征在于还包括 数据获取模块,用于当所需获取的业务数据的业务类型存在于与其对应的緩存数据表的数据列表中时,从所述緩存中获取所述所需获取的业务数据。
17. 根据权利要求11所述的数据存储装置,其特征在于还包括 数据判断模块,用于判断所需获取的业务数据是否存在于数据库中。
18. 根据权利要求ll所述的数据存储装置,其特征在于还包括 数据加载模块,用于当所述緩存还未达到最大容量时,将所需获取的业务数据存储到所述緩存中,并将该业^l丈据的业务类型力口载到所述数据列表中。
19. 根据权利要求11-18所述任一的数据存储装置,^4射4于还包括 修改数据判断模块,用于判断当前存储在所述緩存中的业务数据是否被修改。
20. 根据权利要求11-18所述任一的数据存储取装置,其特征在于还包括更新模块,用于对当前存储在所述緩存中的被修改的业务数据进行更新, 对所述緩存中新增加的业务数据不进行更新。
全文摘要
本发明实施例涉及一种数据存储方法,该方法具体包括当所需获取的业务数据的业务类型不在与其对应的缓存数据表的数据列表中时,根据所述缓存数据表判断缓存是否已达到最大容量;当所述缓存已达到最大容量时,删除所述缓存中的部分或全部业务数据,将该所需获取的业务数据存储在所述缓存中,并将该所需获取业务数据的业务类型加载到所述数据列表中。本发明实施例还涉及一种数据存储装置。本发明实施例有效控制了缓存所占用的内存的空间,缓解了服务器的压力;同时节约了系统资源,提高了服务器的效率。
文档编号G06F17/30GK101221585SQ20081005755
公开日2008年7月16日 申请日期2008年2月3日 优先权日2008年2月3日
发明者霍文辉 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1