一种基于键值对的内存数据库查询方法及装置制造方法及图纸

技术编号:13252964 阅读:45 留言:0更新日期:2016-05-15 16:35
本发明专利技术涉及数据查询领域,尤其是一种基于键值对的内存数据库查询方法及装置。本发明专利技术针对现有技术存在的问题,提供一种数据库查询方法及装置,通过接口线程管理本内存数据库的所有非查询操作;通过数据更新线程实时数据排序输出到查询数据的数据准备块,将数据操作缓冲区的数据更新到实时数据;然后交换数据,并在数据准备就绪后实现两者间的切换。同时设置查询接口仅仅访问数据查询块数据,达到本发明专利技术的目的。本发明专利技术所述开启线程通过Socket接收数据操作命令及数据,并将数据操作指令及数据写入数据操作缓冲区;查询接口根据查询数据区头部的指针指向,在数据查询区内根据键值对进行二分法查询,并通过查询接口返回查询结果。

【技术实现步骤摘要】

本专利技术涉及数据查询领域,尤其是一种基于键值对的内存数据库查询方法及装置
技术介绍
在项目应用环境下,我们需要高频率查询一个千万级的数据库,并且要求平均查询时间在20us以内。因此,常规的数据库已经不能满足需求;而常用的用于查询的内存数据结构:有序表、RB-Tree、AVL-Tree等在插入、删除数据时,也会对高频率的查询产生严重的干扰,导致系统不能工作在良好的状态。因此,我们需要一个:1能承受高频查询,2能高速返回查询结果,3能支持千万数量级,4能在数据操作时不影响正常查询操作的内存数据库。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术存在的问题,提供一种基于键值对的内存数据库查询方法及装置,本专利技术通过数据分离、操作分离、键值查询的方式,并结合不同数据结构的优点,组织数据。具体是通过接口线程管理本内存数据库的所有非查询操作;通过数据更新线程实时数据排序输出到查询数据的数据准备块,将数据操作缓冲区的数据更新到实时数据;然后管理数据查询块、数据准备块,并在数据准备就绪后实现两者间的切换。同时设置查询接口仅仅访问数据查询块数据,达到本专利技术的目的。本专利技术采用的技术方案如下:一种基于键值对的内存数据库查询方法包括:步骤1:将带有随机值通过散列化算法加密后,形成查询键,并将查询键和所述字符串用结构体形成一个键值对;步骤2:内存数据库维护模块设置内存数据库维护模块申请内存大小可以设置的数据操作缓冲区;构造一颗RB_Tree作为实时数据区;申请一块共享内存作为查询数据区,并为查询数据区设置查询数据区头部、数据查询块指针、数据准备块指针、数据查询块、数据准备块;步骤3:内存数据库维护模块开启用于进行指令操作的接口线程以及数据实时更新的数据更新线程;所述开启线程通过Socket接收数据操作命令及数据,并将数据操作指令及数据写入数据操作缓冲区;步骤4:客户端调用查询接口,查询接口根据查询数据区头部的指针指向,在数据查询区内根据键值对进行二分法查询,并通过查询接口返回查询结果。进一步的,所述步骤3中数据实时更新的数据更新线程具体工作过程是:步骤31:内存数据库维护模块开启数据更新线程,所述数据更新线程将数据操作缓冲区的数据,通过数据操作指令添加到实时数据区;步骤32:当添加完数据后,数据更新线程将实时数据区数据排序并输出到数据准备块;步骤33:当数据完全输出到数据准备块后,数据更新线程交换指向数据查询块的指针和数据准备块的指针;所述指向数据查询块的指针和数据准备块的指针位于查询数据块头部中(达到交换数据查询块和数据准备块的目的),执行步骤31。一种基于键值对的内存数据库查询装置包括:键值对形成模块,用于将带有随机值通过散列化算法加密后,形成查询键,并将查询键和所述字符串用结构体形成一个键值对;内存数据库维护模块,用于设置内存数据库维护模块申请内存大小可以设置的数据操作缓冲区;构造一颗RB_Tree作为实时数据区;申请一块共享内存作为查询数据区,并为查询数据区设置查询数据区头部、数据查询块指针、数据准备块指针、数据查询块、数据准备块;然后内存数据库维护模块开启用于进行指令操作的接口线程以及数据实时更新的数据更新线程;所述开启线程通过Socket接收数据操作命令及数据,并将数据操作指令及数据写入数据操作缓冲区;客户端,用于调用查询接口,查询接口根据查询数据区头部的指针指向,在数据查询区内根据键值对进行二分法查询,并通过查询接口返回查询结果。进一步的,所述数据实时更新的数据更新线程具体工作过程是:步骤31:内存数据库维护模块开启数据更新线程,所述数据更新线程将数据操作缓冲区的数据,通过数据操作指令添加到实时数据区;步骤32:当添加完数据后,数据更新线程将实时数据区数据排序并输出到数据准备块;步骤33:当数据完全输出到数据准备块后,数据更新线程交换指向数据查询块的指针和数据准备块的指针;所述指向数据查询块的指针和数据准备块的指针位于查询数据块头部中(达到交换数据查询块和数据准备块的目的),执行步骤31。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:1、通过数据分离、操作分离、键值查询的方式,并结合不同数据结构的优点,组织数据。2、查询操作和非查询操作分离,数据库的非查询操作由接口线程管理,查询操作可随时进行,且不需要任何互斥动作。3、实时数据和查询数据分离。数据查询块、数据准备块分离,由接口线程管理,外部查询无任何感知。本专利技术与现有数据库、查询数据结构相比的优点在于能承受高频查询,能高速返回查询结果,能支持千万数量级,能在数据操作时不影响正常查询操作的内存数据库的能力;经实测,在2000万字符串的情况下,1000万次并发查询,平均查询时间只需要7us,最差大约10us,最优大约3us。附图说明本专利技术将通过例子并参照附图的方式说明,其中:图1是本专利技术实施过程。具体实施方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。1、随机值指的是任意字符串、数字;2、数据操作指令指的是添加、删除或修改等指令;3、内存数据库维护模块可以通过一个进程实现;4、数据分离、操作分离、键值查询。利用不同数据结构的优点,组织数据。通过允许一定的数据同步延时,来实现内存数据库的整体高效。5、将数据总体分为3部份:数据操作缓冲区、实时数据1区、查询数据区。查询数据又分为:数据查询块、数据准备块。本专利技术工作过程:一、使用接口线程来管理本内存数据库的所有非查询操作。1将数据操作缓冲区的数据更新到实时数据。2将实时数据排序输出到查询数据的数据准备块。3管理数据查询块、数据准备块。在数据准备就绪后实现两者间的切换。二、查询接口仅仅访问数据查询块。查询操作可随时进行,且不需要任何互斥动作。具体实施例:一种基于键值对的内存数据库查询方法包括:步骤1:将带有随机值通过散列化算法加密后,形成查询键,并将查询键和所述字符串用结构体形成一个键值对;步骤2:内存数据库维护模块设置内存数据库维护模块申请内存大小可以设置的数据操作缓冲区;构造一颗RB_Tree作为实时数据区;申请本文档来自技高网...

【技术保护点】
一种基于键值对的内存数据库查询方法,其特征在于包括:步骤1:将带有随机值通过散列化算法加密后,形成查询键,并将查询键和所述字符串用结构体形成一个键值对;步骤2:内存数据库维护模块设置内存数据库维护模块申请内存大小可以设置的数据操作缓冲区;构造一颗RB_Tree作为实时数据区;申请一块共享内存作为查询数据区,并为查询数据区设置查询数据区头部、数据查询块指针、数据准备块指针、数据查询块、数据准备块;步骤3:内存数据库维护模块开启用于进行指令操作的接口线程以及数据实时更新的数据更新线程;所述开启线程通过Socket接收数据操作命令及数据,并将数据操作指令及数据写入数据操作缓冲区;步骤4:客户端调用查询接口,查询接口根据查询数据区头部的指针指向,在数据查询区内根据键值对进行二分法查询,并通过查询接口返回查询结果。

【技术特征摘要】
1.一种基于键值对的内存数据库查询方法,其特征在于包括:
步骤1:将带有随机值通过散列化算法加密后,形成查询键,并将查询键和所述字符串
用结构体形成一个键值对;
步骤2:内存数据库维护模块设置内存数据库维护模块申请内存大小可以设置的数据
操作缓冲区;构造一颗RB_Tree作为实时数据区;申请一块共享内存作为查询数据区,并为
查询数据区设置查询数据区头部、数据查询块指针、数据准备块指针、数据查询块、数据准
备块;
步骤3:内存数据库维护模块开启用于进行指令操作的接口线程以及数据实时更新的
数据更新线程;所述开启线程通过Socket接收数据操作命令及数据,并将数据操作指令及
数据写入数据操作缓冲区;
步骤4:客户端调用查询接口,查询接口根据查询数据区头部的指针指向,在数据查询
区内根据键值对进行二分法查询,并通过查询接口返回查询结果。
2.根据权利要求1所述的一种基于键值对的内存数据库查询方法,其特征在于所述步
骤3中数据实时更新的数据更新线程具体工作过程是:
步骤31:内存数据库维护模块开启数据更新线程,所述数据更新线程将数据操作缓冲
区的数据,通过数据操作指令添加到实时数据区;
步骤32:当添加完数据后,数据更新线程将实时数据区数据排序并输出到数据准备块;
步骤33:当数据完全输出到数据准备块后,数据更新线程交换指向数据查询块的指针
和数据准备块的指针;所述指向数据查询块的指针和数据准备块的指针位于查询数据块头
部中(达到交换数据查询块和数据准备块的目的),执行步骤31。<...

【专利技术属性】
技术研发人员:钟昊华
申请(专利权)人:成都广达新网科技股份有限公司
类型:发明
国别省市:四川;51

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

1