The application discloses a data storage method and device. One specific implementation of the method includes: determining the encoding information of each node in the set of nodes to be stored in the multi-tree according to the mapping table of the preset multi-tree, encoding information including parent node level, first sequence number and second sequence number, and encoding information of each node to be stored in the set of nodes to be stored according to the encoding information of each node in the set of nodes to be stored. Each node to be stored includes data header and data body to be stored, in which data header includes parent node level and first serial number, data body includes second serial number; different data headers to be stored are stored separately; the same data header to be stored is merged to make the merged data to be stored after merging storage. Stored data share the same data header, and the data volume is the result of bitwise OR operation of each data body with the same data header. The implementation method realizes the compression storage of multi tree type data.
【技术实现步骤摘要】
数据存储方法和装置
本申请涉及计算机
,具体涉及持久化存储
,尤其涉及数据存储方法和装置。
技术介绍
项目开发中常能遇到一些存储和查询多叉树类型数据的场景。如,全国行政区域划表数据为多叉树结构,含有国家、省、市、县、镇五级地址。在电子商务商家平台,每个商家要对不同的地区设定不同的计费规则。当规则地区对应关系量大时,会出现数据存储量大、缓存进服务容器占用内存空间大的问题。现有持久化存储方案中以字符串类型存储全部地区整型主键标识。采用缓存数据到服务容器中查找方案,构建地区主键标识为键(key)的哈希(hash)数据结构,进行hash查找。当规则地区数据多时,持久化存储占用磁盘空间大,缓存数据到服务容器内存导致内存空间占用大。
技术实现思路
本申请的目的在于提出一种改进的数据存储方法和装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请实施例提供了一种数据存储方法该方法包括:根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息,其中,映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第 ...
【技术保护点】
1.一种数据存储方法,其特征在于,所述方法包括:根据预设的多叉树的映射表,确定所述多叉树的待存储节点集合中每个待存储节点的编码信息,其中,所述映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在所述父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;将数据头不同的待存储数据分别存储;将数据头相同的待存储数据合并存储,以使得合并存储后的待存储 ...
【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:根据预设的多叉树的映射表,确定所述多叉树的待存储节点集合中每个待存储节点的编码信息,其中,所述映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在所述父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;将数据头不同的待存储数据分别存储;将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。2.根据权利要求1所述的方法,其特征在于,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及所述根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:在所述基本字节中按预设的长度存储每个待存储节点的父节点级别;根据每个待存储节点的第一序号的长度和所述基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将所述扩展标志置位,并在所述基本字节和所述扩展字节中存储每个待存储节点的第一序号;否则,在所述基本字节中存储每个待存储节点的第一序号。3.根据权利要求1所述的方法,其特征在于,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及所述根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:根据每个待存储节点的第二序号的长度和所述基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将所述扩展标志置位,并在所述基本字节和所述扩展字节中共同存储每个待存储节点的第二序号;否则,在所述基本字节中存储每个待存储节点的第二序号。4.根据权利要求3所述的方法,其特征在于,所述在所述基本字节中存储每个待存储节点的第二序号,包括:将第二序号作为位置标识,并将所述位置标识指示的数据体中对的位置处的比特位置位。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号;从合并存储后的待存储数据的数据体中解析出第二序号;通过所述映射表将解析出的父节点级别、第一序号和第二序号转换成节点。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:检测转换成的节点是否与待存储节点一致;若不一致,则生成告警信息。7.一种数据存储装置,其特征在于,所述装置包括:编码单元,用于根据预设的多叉树的映射表,确定所述多叉树的待存...
【专利技术属性】
技术研发人员:王贞锋,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。