CN104111899A - 一种缓存数据的存储方法及系统及读取方法 - Google Patents
一种缓存数据的存储方法及系统及读取方法 Download PDFInfo
- Publication number
- CN104111899A CN104111899A CN201410314744.0A CN201410314744A CN104111899A CN 104111899 A CN104111899 A CN 104111899A CN 201410314744 A CN201410314744 A CN 201410314744A CN 104111899 A CN104111899 A CN 104111899A
- Authority
- CN
- China
- Prior art keywords
- data
- cache table
- buffer memory
- cache
- memory storehouse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种缓存数据的存储方法及系统及读取方法,其存储方法,包括以下步骤:步骤1:创建用于存放数据块的缓存库;步骤2:在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;步骤3:为缓存表建立索引表,将索引表存入缓存库;步骤4:定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;步骤5:接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;步骤6:将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表,结束。在写入后还采用压缩技术对内存块进行压缩,减少内存占用的空间,也便于在网络上传输。
Description
技术领域
本发明涉及一种缓存数据的存储方法及系统及读取方法,属于通信技术领域。
背景技术
Ehcache本身含有缓存数据组织方式,为KEY-VALUE方式,不支持类似关系数据库方式的存储,不支持树形的数据结构存储方式。本方法提供一种新的内存内数据组织方式,采用树形,类关系数据库方式的结构存储内存数据,便于内存数据的组织和筛选等操作。
Ehcache:Java缓存框架EhCache EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点。
KEY-VALUE:key-value分布式存储系统查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。
发明内容
本发明所要解决的技术问题是提供一种可以存储复杂的数据结构的缓存数据存储方法。
本发明解决上述技术问题的技术方案如下:一种缓存数据的存储方法,具体包括以下步骤:
步骤1:创建用于存放数据块的缓存库;
步骤2:在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;
步骤3:为缓存表建立索引表,将索引表存入缓存库;
步骤4:定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;
步骤5:接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;
步骤6:将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表,结束。
本发明的有益效果是:本发明实现缓存写入采用类似关系数据库的数据存储结构,并在分配内存时候采用动态分配的方式,减少了内存浪费和内存碎块的产生。同时,在写入后还采用压缩技术对内存块进行压缩,减少内存占用的空间,也便于在网络上传输。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述数据类型包括String、Int、Char、Long、Float和Clob等数据类型。
进一步,所述缓存表在缓存库中采用动态分配内存的方式存在。
本发明所要解决的技术问题是提供一种可以存储复杂的数据结构的缓存数据存储系统。
本发明解决上述技术问题的技术方案如下:一种缓存数据的存储系统,包括缓存库创建模块、缓存表创建模块、索引模块、定义模块、接收模块和压缩存储模块;
所述缓存库创建模块创建用于存放数据块的缓存库;
所述缓存表创建模块在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;
所述索引模块为缓存表建立索引表,将索引表存入缓存库;
所述定义模块用于定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;
所述接收模块用于接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;
所述压缩存储模块用于将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表。
本发明的有益效果是:本发明实现缓存写入采用类似关系数据库的数据存储结构,并在分配内存时候采用动态分配的方式,减少了内存浪费和内存碎块的产生。同时,在写入后还采用压缩技术对内存块进行压缩,减少内存占用的空间,也便于在网络上传输。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述数据类型包括String、Int、Char、Long、Float和Clob等数据类型。
进一步,所述缓存表在缓存库中采用动态分配内存的方式存在。
本发明解决上述技术问题的技术方案如下:一种缓存数据的读取方法,具体包括以下步骤:
步骤1:加载缓存库;
步骤2:读取缓存库中的索引表;
步骤3:根据索引表得到对应的缓存表;
步骤4:从缓存表中得到压缩文件;
步骤5:对压缩文件进行解压得到数据记录和数据类型;
步骤6:将数据记录按照数据类型进行解析,得到数据和数据中每个字段的内容。
附图说明
图1为本发明所述的一种缓存数据的存储方法流程图;
图2为本发明所述的一种缓存数据的存储系统结构框图;
图3为本发明所述的一种缓存数据的读取方法流程图。
附图中,各标号所代表的部件列表如下:
1、缓存库创建模块,2、缓存表创建模块,3、索引模块,4、定义模块,5、接收模块,6、压缩存储模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明所述的一种缓存数据的存储方法,具体包括以下步骤:
步骤1:创建用于存放数据块的缓存库;
步骤2:在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;
步骤3:为缓存表建立索引表,将索引表存入缓存库;
步骤4:定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;
步骤5:接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;
步骤6:将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表,结束。
所述数据类型包括String、Int、Char、Long、Float和Clob等数据类型。
所述缓存表在缓存库中采用动态分配内存的方式存在。
如图2所示,本发明所述的一种缓存数据的存储系统,包括缓存库创建模块1、缓存表创建模块2、索引模块3、定义模块4、接收模块5和压缩存储模块6;
所述缓存库创建模块1创建用于存放数据块的缓存库;
所述缓存表创建模块2在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;
所述索引模块3为缓存表建立索引表,将索引表存入缓存库;
所述定义模块4用于定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;
所述接收模块5用于接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;
所述压缩存储模块6用于将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表。
所述数据类型包括String、Int、Char、Long、Float和Clob等数据类型。
所述缓存表在缓存库中采用动态分配内存的方式存在。
如图3所示,本发明所述的一种缓存数据的读取方法,具体包括以下步骤:
步骤1:加载缓存库;
步骤2:读取缓存库中的索引表;
步骤3:根据索引表得到对应的缓存表;
步骤4:从缓存表中得到压缩文件;
步骤5:对压缩文件进行解压得到数据记录和数据类型;
步骤6:将数据记录按照数据类型进行解析,得到数据和数据中每个字段的内容。
采用分层方式把数据层分为:库、表、记录、基础数据项Item,其中基础数据项有String,Int,Char,Long,Float,Clob等类型。现在分别对缓存写入,缓存读取进行说明。
缓存写入:
第一步,创建缓存存放库,用于存放缓存数据块。
第二步,创建缓存表,以数据块方式存在,其中数据块采用动态分配空间形式,节省了缓存空间,并减少了内存碎块。
第三步,创建缓存表索引,本方法后续会自动维护该索引,使内存数据获取更加快速。
第四步,定义缓存表的列数,以及每列字段的数据类型,这里支持String,Int,Char,Long,Float,Clob等类型。
第五步,依次按照类型写入数据块,写入每个字段内容。
第六步,保存内存文件为二进制文件,并进行相应压缩。
缓存读取:
第一步,创建缓存存放库,用于存放缓存数据块。
第二步,读取内存文件,进行解压,获取到内存文件内数据结构以及数据。
第三步,按照数据结构,解析内存块,解析出数据,得到每个字段内容。
读取缓存数据程序。示例代码如下:
写入缓存信息,示例代码如下:
//创建一个共享
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种缓存数据的存储方法,其特征在于,具体包括以下步骤:
步骤1:创建用于存放数据块的缓存库;
步骤2:在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;
步骤3:为缓存表建立索引表,将索引表存入缓存库;
步骤4:定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;
步骤5:接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;
步骤6:将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表,结束。
2.根据权利要求1所述的一种缓存数据的存储方法,其特征在于,所述数据类型包括String、Int、Char、Long、Float和Clob等数据类型。
3.根据权利要求1或2所述的一种缓存数据的存储方法,其特征在于,所述缓存表在缓存库中采用动态分配内存的方式存在。
4.一种缓存数据的存储系统,其特征在于,包括缓存库创建模块、缓存表创建模块、索引模块、定义模块、接收模块和压缩存储模块;
所述缓存库创建模块创建用于存放数据块的缓存库;
所述缓存表创建模块在缓存库内创建多个缓存表,所述缓存表以数据块形式存储在缓存库中;
所述索引模块为缓存表建立索引表,将索引表存入缓存库;
所述定义模块用于定义每个缓存表中的数据记录的个数和每个缓存表中存储数据类型;
所述接收模块用于接收数据,将数据中每个字段的内容按照数据类型写入数据记录,依次将数据记录写入缓存表;
所述压缩存储模块用于将数据记录进行压缩得到压缩文件,并将压缩文件存入缓存表。
5.根据权利要求4所述的一种缓存数据的存储系统,其特征在于,所述数据类型包括String、Int、Char、Long、Float和Clob等数据类型。
6.根据权利要求4或5所述的一种缓存数据的存储系统,其特征在于,所述缓存表在缓存库中采用动态分配内存的方式存在。
7.一种缓存数据的读取方法,其特征在于,具体包括以下步骤:
步骤1:加载缓存库;
步骤2:读取缓存库中的索引表;
步骤3:根据索引表得到对应的缓存表;
步骤4:从缓存表中得到压缩文件;
步骤5:对压缩文件进行解压得到数据记录和数据类型;
步骤6:将数据记录按照数据类型进行解析,得到数据和数据中每个字段的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410314744.0A CN104111899A (zh) | 2014-07-03 | 2014-07-03 | 一种缓存数据的存储方法及系统及读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410314744.0A CN104111899A (zh) | 2014-07-03 | 2014-07-03 | 一种缓存数据的存储方法及系统及读取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104111899A true CN104111899A (zh) | 2014-10-22 |
Family
ID=51708697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410314744.0A Pending CN104111899A (zh) | 2014-07-03 | 2014-07-03 | 一种缓存数据的存储方法及系统及读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104111899A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168919A (zh) * | 2016-07-06 | 2016-11-30 | 浪潮电子信息产业股份有限公司 | 一种数据库备份方法、装置及系统 |
CN110009110A (zh) * | 2019-03-19 | 2019-07-12 | 福建天晴数码有限公司 | 基于类utxo库的stn网络优化方法、存储介质 |
CN111897819A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN113094374A (zh) * | 2021-04-27 | 2021-07-09 | 广州炒米信息科技有限公司 | 分布式存储和检索方法、装置及计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198899A1 (en) * | 2008-01-31 | 2009-08-06 | Bea Systems, Inc. | System and method for transactional cache |
CN102147768A (zh) * | 2010-05-21 | 2011-08-10 | 苏州捷泰科信息技术有限公司 | 存储器、固态缓存系统及缓存数据处理方法 |
CN103488581A (zh) * | 2013-09-04 | 2014-01-01 | 用友软件股份有限公司 | 数据缓存系统和数据缓存方法 |
CN103577339A (zh) * | 2012-07-27 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 一种数据存储方法及系统 |
CN103885728A (zh) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | 一种基于固态盘的磁盘缓存系统 |
-
2014
- 2014-07-03 CN CN201410314744.0A patent/CN104111899A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198899A1 (en) * | 2008-01-31 | 2009-08-06 | Bea Systems, Inc. | System and method for transactional cache |
CN102147768A (zh) * | 2010-05-21 | 2011-08-10 | 苏州捷泰科信息技术有限公司 | 存储器、固态缓存系统及缓存数据处理方法 |
CN103577339A (zh) * | 2012-07-27 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 一种数据存储方法及系统 |
CN103488581A (zh) * | 2013-09-04 | 2014-01-01 | 用友软件股份有限公司 | 数据缓存系统和数据缓存方法 |
CN103885728A (zh) * | 2014-04-04 | 2014-06-25 | 华中科技大学 | 一种基于固态盘的磁盘缓存系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106168919A (zh) * | 2016-07-06 | 2016-11-30 | 浪潮电子信息产业股份有限公司 | 一种数据库备份方法、装置及系统 |
CN110009110A (zh) * | 2019-03-19 | 2019-07-12 | 福建天晴数码有限公司 | 基于类utxo库的stn网络优化方法、存储介质 |
CN110009110B (zh) * | 2019-03-19 | 2020-11-13 | 福建天晴数码有限公司 | 基于类utxo库的stn网络优化方法、存储介质 |
CN111897819A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN113094374A (zh) * | 2021-04-27 | 2021-07-09 | 广州炒米信息科技有限公司 | 分布式存储和检索方法、装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102129458B (zh) | 关系型数据库的存储方法及装置 | |
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
CN103177027B (zh) | 获取动态Feed索引的方法和系统 | |
CN105912687B (zh) | 海量分布式数据库存储单元 | |
CN103488709B (zh) | 一种索引建立方法及系统、检索方法及系统 | |
CN102122285B (zh) | 一种数据缓存系统中的数据查询系统和数据查询方法 | |
CN103473239B (zh) | 一种非关系型数据库数据更新方法和装置 | |
CN102663090B (zh) | 元数据查询方法和装置 | |
CN106708427A (zh) | 一种适用于键值对数据的存储方法 | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
TW201530328A (zh) | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 | |
CN102332030A (zh) | 用于分布式键-值存储系统的数据存储、管理和查询方法及系统 | |
CN103473229A (zh) | 一种内存检索系统和方法、以及实时检索系统和方法 | |
CN102402617A (zh) | 一种利用分片及稀疏位图的易压缩数据库索引存储系统及其相应的构建、调度和查询处理方法 | |
CN109284299A (zh) | 重构具有存储感知的混合索引的方法 | |
CN104111899A (zh) | 一种缓存数据的存储方法及系统及读取方法 | |
CN105653609A (zh) | 基于内存的数据处理方法及装置 | |
CN107741947B (zh) | 基于hdfs文件系统的随机数密钥的存储与获取方法 | |
CN104298697A (zh) | 一种fat32格式的数据文件管理系统 | |
CN116257523A (zh) | 一种基于非易失存储器的列式存储索引方法及装置 | |
CN101499097A (zh) | 基于散列表的数据流频繁模式内存压缩存储方法 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN104462080B (zh) | 针对检索结果进行分组统计的索引结构创建方法和系统 | |
CN109697068A (zh) | 一种分库分表模式下逻辑sql语句翻译方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141022 |