[发明专利]数据存储方法及装置有效
| 申请号: | 201410077706.8 | 申请日: | 2014-03-05 |
| 公开(公告)号: | CN104899204B | 公开(公告)日: | 2020-04-07 |
| 发明(设计)人: | 王才平 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22 |
| 代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 蒋雅洁;张颖玲 |
| 地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据 存储 方法 装置 | ||
本发明公开一种数据存储方法,包括:获取待存储的数据;根据所述待存储的数据,获取所述待存储的数据对应的分段位图中的比特位;将所述待存储的数据对应的分段位图中的比特位置位为1;将比特位置位后的分段位图进行存储。本发明还公开一种数据存储装置。本发明相对于现有技术的数据存储方式进一步减少了存储空间。
技术领域
本发明涉及计算机领域,尤其涉及一种数据存储方法及装置。
背景技术
现有的数据分析中,一般采用Java、C++、Python等高级语言编写程序进行统计,例如分布式的MapReduce代码等。但是对于独立用户数的统计,目前最简单也是最常用的方式之一,是利用各类高级语言中的Set对象存储账户号码,最后取得Set的长度得到唯一值个数。例如Java语言实现的代码如下:
上述方法虽然简单、代码量少,但是在数据量大的情况下,Set对象将消耗过多的内存,甚至导致内存溢出。
发明内容
本发明实施例的主要目的是提供一种数据存储方法及装置,旨在减小存储空间。
为达到以上目的,本发明实施例提供了一种数据存储方法,包括以下步骤:
获取待存储的数据;
根据所述待存储的数据,获取所述待存储的数据对应的分段位图中的比特位;
将所述待存储的数据对应的分段位图中的比特位置位为1;
将比特位置位后的分段位图进行存储。
本发明实施例还提供了一种数据存储装置,包括:
数据获取模块,用于获取待存储的数据;
位置查找模块,用于根据所述待存储的数据,获取所述待存储的数据对应的分段位图中的比特位;
置位模块,用于将所述待存储的数据对应的分段位图中的比特位置位为1;
存储模块,用于将比特位置位后的分段位图进行存储。
本发明通过将待存储的数据添加到位图的对应分段位图进行存储,相对于现有技术的HashSet方式,占用更小的内存,且更为高效。而且通过序列化压缩方法,进一步减少了占用空间。同时,在将待存储的数据添加到位图中时,已经按统一的运算规则分别添加到有序的段位图中,则整个位图可以很方便地将所有的数据有序导出。因此,本发明采用分段位图的存储方式,既能高效和方便的存储,又使得数据可以有序的取出。
附图说明
图1是本发明数据存储方法所应用的的终端硬件架构示例图;
图2是本发明数据存储方法一实施例的流程示意图;
图3是本发明数据存储方法中分段位图的结构示例图;
图4是本发明数据存储方法中另一实施例存储位图的流程示意图;
图5是本发明数据存储方法中找出每个段位图中最左边的第1个非空闲位与最右边的第1个非空闲位的位图示例图;
图6a是采用本发明数据存储方法中的分段位图方式存储数据时的时间消耗与采用HashSet方式、整段位图方式存储数据时的时间消耗比对示例图;
图6b是采用本发明数据存储方法中的分段位图方式存储数据时的内存消耗与采用HashSet方式、整段位图方式存储数据时的内存消耗比对示例图;
图7是本发明数据存储方法中位图的表示结构示例图;
图8是本发明数据存储方法另一实施例的流程示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410077706.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种废弃话单处理方法及装置
- 下一篇:USBType‑C接口的识别电路
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





