CN103309901A - 排序集数据的存储方法及装置 - Google Patents

排序集数据的存储方法及装置 Download PDF

Info

Publication number
CN103309901A
CN103309901A CN2012100701248A CN201210070124A CN103309901A CN 103309901 A CN103309901 A CN 103309901A CN 2012100701248 A CN2012100701248 A CN 2012100701248A CN 201210070124 A CN201210070124 A CN 201210070124A CN 103309901 A CN103309901 A CN 103309901A
Authority
CN
China
Prior art keywords
ordering
data
database
ordering collection
collection
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.)
Granted
Application number
CN2012100701248A
Other languages
English (en)
Other versions
CN103309901B (zh
Inventor
曾毅
伍正勇
向灿
钟智将
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Great Opensource Software Co ltd
Original Assignee
Shenzhen QVOD Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen QVOD Technology Co Ltd filed Critical Shenzhen QVOD Technology Co Ltd
Priority to CN201210070124.8A priority Critical patent/CN103309901B/zh
Publication of CN103309901A publication Critical patent/CN103309901A/zh
Application granted granted Critical
Publication of CN103309901B publication Critical patent/CN103309901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种排序集数据的存储方法及装置,其中,该方法包括:接收排序集数据并获取排序集数据的标识;将排序集数据进行压缩处理;根据排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;根据排序集将数据库进行分片处理;将分片处理后的数据库中的排序集数据映射至内存。通过本发明,可以减小redis系统数据库容量受到物理内存的限制,从而可以实现海量数据的高性能读写。

Description

排序集数据的存储方法及装置
技术领域
本发明涉及数据存储领域,具体地,涉及一种排序集数据的存储方法及装置。
背景技术
在通信系统中,由于redis系统的数据存放在内存,没有持久存储至磁盘来实现数据的高性能读写,因此,一旦系统宕机,整个数据将全部被清空,虽然redis系统自身有持久化机制,但是系统重启后恢复数据较慢。
另外,redis系统的数据处理量受到内存的限制,因为redis系统使用内存比较厉害,而数据一般存放在内存中,因此数据库容量受到物理内存的限制,从而无法实现海量数据的高性能读写。
发明内容
本发明实施例的主要目的在于提供一种排序集数据的存储方法及装置,以解决现有技术中的redis系统数据库容量受到物理内存的限制而导致的无法实现海量数据的高性能读写的问题。
为了实现上述目的,本发明实施例提供一种排序集数据的存储方法,该方法包括:接收排序集数据并获取所述排序集数据的标识;将所述排序集数据进行压缩处理;根据所述排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;根据所述排序集将所述的数据库进行分片处理;将分片处理后的数据库中的排序集数据映射至内存。
具体地,在根据所述排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集之前,所述方法还包括:根据所述排序集数据的标识判断所述数据库中是否存在所述对应的排序集;如果存在所述对应的排序集,则判断所述对应的排序集中的记录数量是否超出限定值,如果是,则删除所述对应的排序集中最早的记录;如果不存在所述对应的排序集,则根据所述排序集数据的标识建立排序集。
将分片处理后的数据库中的排序集数据映射至内存之后,所述的方法还包括:周期性异步备份所述分片处理后的数据库中的排序集数据到预定目录。
本发明实施例还提供一种排序集数据的存储装置,所述装置包括:标识获取单元,用于接收排序集数据并获取所述排序集数据的标识;压缩处理单元,用于将所述排序集数据进行压缩处理;数据存储单元,用于根据所述排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;分片处理单元,用于根据所述排序集将所述的数据库进行分片处理;数据映射单元,用于将分片处理后的数据库中的排序集数据映射至内存。
具体地,上述装置还包括:排序集判断单元,用于根据所述排序集数据的标识判断所述数据库中是否存在所述对应的排序集;记录删除单元,用于在存在所述对应的排序集时,判断所述对应的排序集中的记录数量是否超出限定值,如果是,则删除所述对应的排序集中最早的记录;排序集建立单元,用于如果不存在所述对应的排序集,则根据所述排序集数据的标识建立排序集。
上述的装置还包括:备份单元,用于周期性异步备份所述分片处理后的数据库中的排序集数据到预定目录。
借助于上述技术方案至少之一,通过将排序集数据压缩处理后存储至数据库,并将数据库分片后将数据映射至内存,可以提升数据库容量,减小内存限制,从而可以实现海量数据的高性能读写。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的排序集数据存储方法的流程图;
图2是根据本发明实施例的数据存储示意图;
图3是在TC数据库向指定的集合key中添加(Zadd指令)记录的流程图;
图4是在TC数据库向指定的集合key中删除(Zrem指令)记录的流程图;
图5是Zrange指令的流程图;
图6是Zcard指令的流程图;
图7是备份的流程图;
图8是数据回写至磁盘的流程图;
图9是根据本发明实施例的排序集数据存储装置的结构框图;
图10是根据本发明实施例的排序集数据存储装置的详细结构框图;
图11是根据本发明实施例的排序集数据存储装置的另一结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种排序集数据的存储方法及装置。以下结合附图对本发明进行详细说明。
实施例一
图1是根据本发明实施例的排序集数据的存储方法的流程图,如图1所述,该方法包括:
步骤101,接收排序集数据并获取排序集数据的标识;
步骤102,将排序集数据进行压缩处理;
步骤103,根据排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;
步骤104,根据排序集将数据库进行分片处理;
步骤105,将分片处理后的数据库中的排序集数据映射至内存。
由以上描述可以看出,通过将排序集数据压缩处理后存储至数据库,并将数据库分片后将数据映射至内存,可以提升数据库容量,减小内存限制,从而可以实现海量数据的高性能读写。
在本发明实施中,可以是将数据库分成256个分片。
上述排序集即为:一个集合,在集合中每一个元素都是唯一的,并且是有序的。
具体地,在步骤103根据排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集之前,上述方法还包括:
根据排序集数据的标识判断数据库中是否存在对应的排序集;
如果存在对应的排序集,则判断对应的排序集中的记录数量是否超出限定值,如果是,则删除对应的排序集中最早的记录,如果否,则直接进行步骤103;
如果不存在对应的排序集,则根据排序集数据的标识建立排序集,之后进行步骤103。
具体地,在步骤105将分片处理后的数据库中的排序集数据映射至内存之后,上述方法还包括:周期性异步备份分片处理后的数据库中的排序集数据到预定目录。这样,就可以实现redis系统的持久化存储机制,克服现有技术中的redis系统无法实现排序集数据持久化的问题。
在实际操作中,上述的数据库可以是TC(tokyo cabinet)数据库。
数据存储在TC数据库中,TC数据库的设计为:key为字符串标识用户id,每一个key对应一个集合,即为value,value为一个map数据结构,其中以游戏ID作为map中的key,时间作为map中的value,集合中的元素按时间值排序。Map中的记录数可由客户端自由调整,超过限制的记录会按照制定的规则删除一部分数据,使其在限制数以内,在map中每一个key是唯一的,如果添加相同的key,那么会覆盖原先的value。同时,将数据库分片和压缩,并将其映射至内存,以提升读写速度以及减小数据库容量。图2是数据存储示意图。
该TC数据库系统是采用tokyo cabinet实现redis排序集的存储系统。该系统是一种key-value存储系统。Key即为排序集的名称,每一个key唯一对应一个排序集,value即为集合中的元素。该系统采用redis的协议提供了排序集的zadd、zrem、zrange、zrevrange、zcard以及zdel等指令集,分别用于向集合添加、删除、有序获取元素,以及统计集合中元素的个数和删除集合。
以下详细描述各指令的执行过程。
图3示出了在TC数据库向指定的集合key中添加(Zadd指令)记录的流程,如图3所示:
步骤301,查找key对应的集合;
步骤302,判断该集合是否存在,如果不存在,则进行步骤303,否则进行步骤304;
步骤303,在数据库中创建集合,写入记录至集合,之后进行步骤307;
步骤304,在集合中写入记录;
步骤305,判断集合中的记录数是否大于限定值,如果是,则进行步骤306,否则进行步骤307;
步骤306,查找并删除最早的记录;
步骤307,Zadd结束,返回结果。
图4示出了在TC数据库向指定的集合key中删除(Zrem指令)记录的流程,如图4所示:
步骤401,查找key对应的集合;
步骤402,判断该集合是否存在,如果不存在,则进行步骤404,否则进行步骤403;
步骤403,从集合中删除相应的记录;
步骤404,Zrem结束,返回结果。
Zrange指令和Zrevrange指令,都是从指定的集合中按顺序获取指定区间内的元素(相当于map中的key),其中:Zrange是顺序获取,而Zrevrange是逆序获取。如果携带有withscores功能,则还需返回对应元素的权重值(相当于map中的value)。以下Zrange指令为例描述操作流程,如图5所示:
步骤501,查找key对应的集合;
步骤502,判断该集合是否存在,如果不存在,则进行步骤507,否则进行步骤503;
步骤503,将集合中的记录排序;
步骤504,是否带有withsocres功能,如果是,则进行步骤505,否则进行步骤506;
步骤505,返回结果为指定区间内的元素和权重值对组成的集合;
步骤506,返回结果为指定区间内的元素集合;
步骤507,Zrange结束,返回结果。
Zcard指令为统计排序集key中元素的个数,Zdel指令是删除key对应的集合。Zcard指令的流程如图6所示:
步骤601,查找key对应的集合;
步骤602,判断该集合是否存在,如果不存在,则进行步骤603,否则进行步骤604;
步骤603,结果为0,之后返回步骤605;
步骤604,统计集合中的记录数;
步骤605,Zcard结束,返回结果。
TC数据库系统使用一个线程用于异步定时备份数据,当设定的时间到达时,将所有的数据库分片备份至指定的目录,备份时,使用TC的数据备份接口,备份相应的数据库文件。备份流程如图7所示:
步骤701,等待定时触发;
步骤702,判断是否存在需要备份的数据库文件,如果是,则进行步骤703,否则返回步骤701;
步骤703,加锁指定的数据库文件;
步骤704,备份数据库文件至指定的目录;
步骤705,解锁相应的数据库文件,并返回步骤702。
系统实现过程中将数据库文件映射至内存,为了保证数据的一致性,以及避免数据丢失,定时检查制定的条件,在满足条件的情况下,会将内存中的数据回写至磁盘。例如,条件可以为一定时间间隔达到一定的数据修改操作,具体操作流程如图8所示:
步骤801,等待定时触发;
步骤802,根据设定条件判断是否存在需要回写的数据库文件,如果是,则进行步骤803,否则返回步骤801;
步骤803,加锁指定的数据库文件;
步骤804,回写指定的数据库文件至磁盘;
步骤805,解锁相应的数据库文件。
实施例二
本发明实施例还提供一种排序集数据的存储装置,该装置优选地用于实现上述实施例一中的方法。如图9所示,该装置包括:
标识获取单元1,用于接收排序集数据并获取排序集数据的标识;
压缩处理单元2,用于将排序集数据进行压缩处理;
数据存储单元3,用于根据排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;
分片处理单元4,用于根据排序集将数据库进行分片处理;
数据映射单元5,用于将分片处理后的数据库中的排序集数据映射至内存。
由以上描述可以看出,通过压缩处理单元将排序集数据压缩处理后存储至数据库,并通过分片处理单元将数据库分片后将数据映射至内存,可以提升数据库容量,减小内存限制,从而可以实现海量数据的高性能读写。
如图10所示,上述装置还包括:
排序集判断单元6,用于根据排序集数据的标识判断数据库中是否存在对应的排序集;
记录删除单元7,用于在存在对应的排序集时,判断对应的排序集中的记录数量是否超出限定值,如果是,则删除对应的排序集中最早的记录;
排序集建立单元8,用于如果不存在对应的排序集,则根据排序集数据的标识建立排序集。
上述装置还包括:备份单元(图中未示出),用于周期性异步备份分片处理后的数据库中的排序集数据到预定目录。
上述各单元的具体执行过程可以参见上述实施例一中的相关描述,此处不再赘述。
在实际操作中,如图11所示,上述装置可以分为三大模块:网络IO模块、协议解析模块以及指令执行模块,其中:
网络IO模块:接收客户端请求以及向客户端发送指令执行结果。
协议解析模块:解析客户端请求,转换成相应的指令。
指令执行模块:执行相应的指令,返回结果给客户端。
同时,该装置还设置了异步定时备份数据,在闲时将数据备份,以及定时异步回写数据,将内存中的数据持久化至磁盘。
通过上述装置,可以实现排序集数据持久化存储以及高性能读写。
综上所述,通过对数据库进行分片处理,之后将每个数据库文件映射至内存,这样可以提升读写性能;由于存入数据库中的数据是经过压缩的,减小了数据库使用大小,从而提升了数据库的容量,并且结合周期性备份等方案,可以实现排序集数据持久化存储以及高性能读写,提升数据库容量,减轻内存限制。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种排序集数据的存储方法,其特征在于,所述的方法包括:
接收排序集数据并获取所述排序集数据的标识;
将所述排序集数据进行压缩处理;
根据所述排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;
根据所述排序集将所述的数据库进行分片处理;
将分片处理后的数据库中的排序集数据映射至内存。
2.根据权利要求1所述的方法,其特征在于,所述根据所述排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集之前,所述方法还包括:
根据所述排序集数据的标识判断所述数据库中是否存在所述对应的排序集;
如果存在所述对应的排序集,则判断所述对应的排序集中的记录数量是否超出限定值,如果是,则删除所述对应的排序集中最早的记录;
如果不存在所述对应的排序集,则根据所述排序集数据的标识建立排序集。
3.根据权利要求1所述的方法,其特征在于,将分片处理后的数据库中的排序集数据映射至内存之后,所述的方法还包括:
周期性异步备份所述分片处理后的数据库中的排序集数据到预定目录。
4.一种排序集数据的存储装置,其特征在于,所述的装置包括:
标识获取单元,用于接收排序集数据并获取所述排序集数据的标识;
压缩处理单元,用于将所述排序集数据进行压缩处理;
数据存储单元,用于根据所述排序集数据的标识将压缩处理后的排序集数据存储至数据库中对应的排序集;
分片处理单元,用于根据所述排序集将所述的数据库进行分片处理;
数据映射单元,用于将分片处理后的数据库中的排序集数据映射至内存。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
排序集判断单元,用于根据所述排序集数据的标识判断所述数据库中是否存在所述对应的排序集;
记录删除单元,用于在存在所述对应的排序集时,判断所述对应的排序集中的记录数量是否超出限定值,如果是,则删除所述对应的排序集中最早的记录;
排序集建立单元,用于如果不存在所述对应的排序集,则根据所述排序集数据的标识建立排序集。
6.根据权利要求4所述的装置,其特征在于,所述的装置还包括:
备份单元,用于周期性异步备份所述分片处理后的数据库中的排序集数据到预定目录。
CN201210070124.8A 2012-03-16 2012-03-16 排序集数据的存储方法及装置 Active CN103309901B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210070124.8A CN103309901B (zh) 2012-03-16 2012-03-16 排序集数据的存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210070124.8A CN103309901B (zh) 2012-03-16 2012-03-16 排序集数据的存储方法及装置

Publications (2)

Publication Number Publication Date
CN103309901A true CN103309901A (zh) 2013-09-18
CN103309901B CN103309901B (zh) 2017-11-17

Family

ID=49135138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210070124.8A Active CN103309901B (zh) 2012-03-16 2012-03-16 排序集数据的存储方法及装置

Country Status (1)

Country Link
CN (1) CN103309901B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625396A (zh) * 2019-02-27 2020-09-04 阿里巴巴集团控股有限公司 备份数据的校验方法、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585548A (zh) * 2004-05-25 2005-02-23 中兴通讯股份有限公司 一种分布式访问位置寄存器vlr的实现方法
CN101540726A (zh) * 2009-04-27 2009-09-23 华为技术有限公司 同步数据的方法、客户端、服务器及系统
CN102354292A (zh) * 2011-09-21 2012-02-15 国家计算机网络与信息安全管理中心 主、备数据库记录一致性校验方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585548A (zh) * 2004-05-25 2005-02-23 中兴通讯股份有限公司 一种分布式访问位置寄存器vlr的实现方法
CN101540726A (zh) * 2009-04-27 2009-09-23 华为技术有限公司 同步数据的方法、客户端、服务器及系统
CN102354292A (zh) * 2011-09-21 2012-02-15 国家计算机网络与信息安全管理中心 主、备数据库记录一致性校验方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625396A (zh) * 2019-02-27 2020-09-04 阿里巴巴集团控股有限公司 备份数据的校验方法、服务器及存储介质
CN111625396B (zh) * 2019-02-27 2023-05-26 阿里云计算有限公司 备份数据的校验方法、服务器及存储介质

Also Published As

Publication number Publication date
CN103309901B (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
US11593217B2 (en) Systems and methods for managing single instancing data
US11016858B2 (en) Systems and methods for managing single instancing data
US8161321B2 (en) Virtual machine-based on-demand parallel disaster recovery system and the method thereof
CN102567427B (zh) 一种对象数据处理方法及装置
US20150095559A1 (en) Performance improvement of a capacity optimized storage system including a determiner
CN102073697A (zh) 一种数据处理方法及装置
CN102934097A (zh) 数据去重
CN101707633B (zh) 一种基于文件系统的消息中间件持久消息的存储方法
CN109445702A (zh) 一种块级数据去重存储系统
CN109683825B (zh) 一种存储系统在线数据压缩方法、装置及设备
CN103955530A (zh) 一种在线重复数据删除系统的数据重建优化方法
CN102779138B (zh) 实时数据的硬盘存取方法
CN103617277A (zh) 一种还原误删除的数据表内容的方法
US7657533B2 (en) Data management systems, data management system storage devices, articles of manufacture, and data management methods
CN101963977A (zh) 无城市搜索方法及移动终端
CN111752931A (zh) 一种用于newsql数据库管理系统的智能存储表实现方法及系统
CN108021562B (zh) 应用于分布式文件系统的存盘方法、装置及分布式文件系统
CN113821382B (zh) 一种实时数据库数据处理方法、系统和设备
KR101666440B1 (ko) 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
US9594635B2 (en) Systems and methods for sequential resilvering
AU2013206404B2 (en) Systems and methods for managing single instancing data
US6510499B1 (en) Method, apparatus, and article of manufacture for providing access to data stored in compressed files
CN101464790A (zh) 命令排程装置及其方法
CN103309901A (zh) 排序集数据的存储方法及装置
CN103064926B (zh) 数据处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200622

Address after: No.266 Chuangyan Road, Qilin science and Technology Innovation Park, Jiangning District, Nanjing City, Jiangsu Province

Patentee after: Nanjing Qianying Technology Development Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road No. 009 China Technology Development Institute Technology Park building three, 22 layers of A

Patentee before: SHENZHEN QVOD TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201102

Address after: 233000 No.10, building 32, Zone 8, Guangcai market, bengshan District, Bengbu City, Anhui Province

Patentee after: Bengbu Shangwei Intellectual Property Operations Co.,Ltd.

Address before: No.266 Chuangyan Road, Qilin science and Technology Innovation Park, Jiangning District, Nanjing City, Jiangsu Province

Patentee before: Nanjing Qianying Technology Development Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220706

Address after: 100071 room 18, unit 1001, floor 10, building 3, yard 6, East Road of Automobile Museum, Fengtai District, Beijing

Patentee after: BEIJING GREAT OPENSOURCE SOFTWARE Co.,Ltd.

Address before: 233000 No.10, building 32, Zone 8, Guangcai market, bengshan District, Bengbu City, Anhui Province

Patentee before: Bengbu Shangwei Intellectual Property Operations Co.,Ltd.

TR01 Transfer of patent right