一种散列多页数据缓存方法技术

技术编号:37333860 阅读:23 留言:0更新日期:2023-04-21 23:12
本发明专利技术公开了一种散列多页数据缓存方法,采用整数数值作为对应的数据索引,通过对应的索引值确定待插入的内存页,然后通过自定义的Cmap内存模型将待缓存数据插入到对应的内存页中,从而完成数据缓存。此外,本发明专利技术针对字符型的数据索引,采用自定义的Chash算法将非整型数值的索引值转换为唯一递增的整型数值,然后利用整型数值的索引值计算待插入内存页的内存页序号,从而完成索引的优化,提高了内存读写效率。读写效率。读写效率。

【技术实现步骤摘要】
一种散列多页数据缓存方法


[0001]本专利技术涉及数据存储领域,具体涉及一种散列多页数据缓存方法。

技术介绍

[0002]在后台系统开发中,很多时候需要缓存数据在内存中,如何高效地存取数据变的尤为重要。c++标准库中提供了很多标准化的通用容器类,这些容器类接口设计标准化,调用方便,但是效率不稳定,在处理大容量数据时速度显著降低。比如map容器类,内部使用红黑树作为存储数据结构,在处理字符类型作为索引值的数据或者添加上述类型数据到容器时,红黑树需要对数据进行排序,该过程效率较低,导致整个数据读写速度变慢。

技术实现思路

[0003]以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
[0004]本专利技术的目的在于解决上述问题,提供了一种散列多页数据缓存方法,针对待缓存的数据,采用整数数值作为对应的数据索引,本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种散列多页数据缓存方法,其特征在于,包括以下步骤:获取待缓存数据;判断待缓存数据的索引值是否为整型数值;若是,则直接根据待缓存数据的索引值计算内存页序号;若否,则将非整型数值转换为整型数值,然后根据转换后的索引值计算内存页序号;判断计算得到的内存页序号是否有效;若是,则判断内存页序号对应的内存页对象是否存在;若否,则直接结束数据插入流程;判断内存页序号对应的内存页对象是否存在;若是,则直接根据待缓存数据的索引值将待缓存数据插入到对应的内存页中,结束数据插入流程;若否,则新建并初始化内存页对象,然后根据待缓存数据的索引值将待缓存数据插入到新建的内存页中,结束数据插入流程。2.根据权利要求1所述的散列多页数据缓存方法,其特征在于,所述散列多页数据缓存方法采用唯一递增的整型数值作为索引值;其中,当待缓存数据的索引值为非整型数值时,采用自定义的Chash算法将非整型数值的索引值转换为唯一递增的整型数值,然后利用整型数值的索引值计算待插入内存页的内存页序号。3.根据权利要求1所述的散列多页数据缓存方法,其特征在于,所述散列多页数据缓存方法采用内存页形式管理内存资源,通过Cmap内存模型将待缓存数据插入到对应的内存页中;其中,所述Cmap内存模型包括多个内存页对象Cmap_collection,每个内存页对象Cmap_collection包括多个底层数据对象Cblock,所述散列多页数据缓存方法根据整型数值的索引值计算得到内存页序号后,通过三层架构的Cmap内存模型将索引值对应的待缓存数据插入到对应的内存页中。4.根据权利要求3所述的散列多页数据缓存方法,其特征在于,所述Cmap内存模型采用指针数组管理多个内存页对象Cmap_collecion,通过内存页对象Cmap_collecion管理对应的内存页的存储范围;其中,所述散列多页数据缓存方法根据索引值计算得到对应的内存页序号后,判断内存页序号是否有效;若是,则在允许的范围内调用对应的内存页对象Cmap_collecion将待缓存的数据存储到对应的内存页中;若否,则直接结束数据插入流程。5.根据权利要求4所述的散列多页数据缓存方法,其特征在于,所述散列多页数据缓存方法获取到有效的内存页序号后,获取可用内存页指针链表对象,然后通过可用内存页指针链表对象依次遍历可用内存页指针链表,获取对应的内存页对象Cmap_collecion;其中,所述散列多页数据缓存方法遍历可用内存页指针链表时,调用每个内存页中的遍历方法,然后调用内存页对象Cmap_collecion...

【专利技术属性】
技术研发人员:王毅鹏郑斌曾柯杰赵亚萍韩增
申请(专利权)人:上海金融期货信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1