结构化数据的存取方法以及装置的制造方法

文档序号:9375656阅读:390来源:国知局
结构化数据的存取方法以及装置的制造方法
【技术领域】
[0001]本发明涉及数据库技术领域,特别是涉及一种结构化数据的存取方法以及其装置。
【背景技术】
[0002]key-value (键-值)数据库因其没有复杂的关系操作,并能提供高效的读写性能、可靠性和持久化,因此在数据的存储方面得到广泛应用。但是,key-value数据库中的value值只能保存有限的数据类型,例如Redis数据库是一种高性能的key-value数据库,其也只能保存string(字符串)、hash (哈希类型)、list (链表)、set (集合)及sortedset (有序集合)五种类型。并且Key-value数据库的value值必须是一个连续的内存数据块,而结构化数据无法保证是连续的内存数据块,如果要用key-value数据库保存结构化数据,要将不是连续的内存数据的结构化数据进行拆分保存,无法一次性保存。

【发明内容】

[0003]本发明主要解决的技术问题是提供一种结构化数据的存取方法以及其装置,能够一次性地将结构化数据保存到key-value数据库中。
[0004]为解决上述技术问题,本发明采用的一个技术方案是:提供一种结构化数据的存取方法,该方法包括以下步骤:接收将结构化数据存储到key-value数据库的指令;根据预设的协议将结构化数据编码为可一次性存储于key-value数据库的数据;将经过编码后的结构化数据存储于key-value数据库中。
[0005]其中,根据预设的协议将结构化数据编码为可一次性存储于key-value数据库的数据进一步包括:根据预设的协议将结构化数据编码为连续的内存数据;定义连续的内存数据为key-value数据库可存储的类型之一。
[0006]其中,根据预设的协议将结构化数据编码为可一次性存储于key-value数据库的数据的之后进一步包括:判断是否编码成功;若编码成功,则执行将经过编码后的结构化数据存储于key-value数据库中的步骤;若编码失败,则返回编码失败的信息,并重新接收将结构化数据存储到key-value数据库的指令。
[0007]其中,方法还包括:接收从key-value数据库获取经过编码后的结构化数据的指令;从key-value数据库中读取经过编码后的结构化数据,并根据预设的协议对经过编码后的数据进行解码。
[0008]其中,预设的协议包括二进制协议、Protobuf协议、ASNl协议、xml协议或者json协议。
[0009]为解决上述技术问题,本发明采用的又一个技术方案是:提供一种结构化数据的存取装置,装置包括:存储指令接收模块,用于接收将结构化数据存储到key-value数据库的指令;编码模块,用于根据预设的协议将结构化数据编码为可一次性存储于key-value数据库的数据;其中,key-value数据库存储经过编码后的结构化数据。
[0010]其中,编码模块将结构化数据编码为连续的内存数据,并定义连续的内存数据为key-value数据库可存储的类型之一。
[0011]其中,装置还包括判断模块,用于判断是否编码成功,key-value数据库在编码成功时存储经过编码后的结构化数据,存储指令接收模块在编码失败时接收编码失败的信息,并重新接收将结构化数据存储到key-value数据库的指令。
[0012]其中,装置还包括:获取指令接收模块,用于接收从key-value数据库获取经过编码后的结构化数据的指令;解码模块,用于从key-value数据库读取经过编码后的结构化数据并对经过编码后的数据进行解码。
[0013]其中,预设的协议包括二进制协议、Protobuf协议、ASNl协议、xml协议或者json协议。
[0014]本发明的有益效果是:区别于现有技术的情况,本发明在将结构化数据存入key-value数据库之前将其编码为可一次性存储于key-value数据库的数据,因此,可一次性地保存结构化数据,提高了存储的效率和准确率。
【附图说明】
[0015]图1是发明实施例提供的一种结构化数据的存取装置的结构示意图;
图2是本发明的一种结构化数据存储到key-value数据库的原理图;
图3是本发明实施例提供的一种结构化数据的存取方法的流程图。
【具体实施方式】
[0016]请参阅图1,图1是本发明实施例提供的一种结构化数据的存取装置的结构示意图,其中,结构化数据存储和获取的对象是key-value数据库100,其包括redis (内存键值存储)数据库或者memcache (高速缓存)数据库。如图1所示,本实施例的存取装置10包括将结构化数据存储到key-value数据库100的装置11以及从key-value数据库100获取结构化数据的装置12。
[0017]其中,将结构化数据存储到key-value数据库100的装置11包括存储指令接收模块111以及编码模块112。
[0018]存储指令接收模块111用于接收将结构化数据存储到key-value数据库100的指令。具体而言,存储指令可以是按照预设的时间自动发送,也可以是用户根据实际的需要随机发送,由此,接收模块111可以对应自动发送的操作设置按照预设的时间接收存储指令,也可以按照随机发送的操作设置为随机接收存储指令。
[0019]编码模块112用于根据预设的协议将结构化数据编码为可一次性存储于key-value数据库100的数据。具体为,编码模块112根据预设的协议将结构化数据编码为连续的内存数据,并定义连续的内存数据为key-value数据库100可存储的类型之一。
[0020]具体原理请参阅图2,图2是本发明的一种结构化数据存储到key-value数据库的原理图。结构化数据可以由一种或者两种或以上的类型的数据组成。本实施例以结构化数据由两种类型的数据组成进行举例。如图2所示,定义一结构化数据M,其由string类型的数据O和hash类型的数据P组成。而string类型的数据O存储在数据库的内存的栈中,hash类型的数据P存储在数据库的内存的堆中。本实施例将该数据O和数据P进行编码成一个连续的内存数据块,并定义为set类型,进而将数据类型为set的数据存储到key-value数据库100的数据区中,从而可以一次性完成存储,并将数据O和数据P存储在同一个连续的内存中。
[0021]可选的,预设的协议包括二进制协议、Protobuf (Protocol buffer,协议缓冲区)协议、ASNl (Abstract Syntax Notat1n One,抽象语法记法一)协议、xml (ExtensibleMarkup Language,翻译为可扩展置标语言)协议或者 json (JavaScript Object Notat1n,javaScript对象符号)协议。
[0022]可选的,将结构化数据存储到key-value数据库100的装置11还包括判断模块113,用于判断是否编码成功。key-value数据库100在编码成功时存储经过编码后的结构化数据,存储指令接收模块111在编码失败时接收编码失败的信息,并重新接收将结构化数据存储到key-value数据库100的指令。
[0023]以上介绍的是将结构化数据存储到key-value数据库100的装置11的结构,其通过设置编码模块112,使得结构化数据可以一次性存储于key-value数据库100中,并保证了数据的在key-value数据库100内存中的连续性。提高了存储的准确率和效率。
[0024]以下将具体介绍从key-value数据库获取结构化数据的装置12。
[0025]从key-value数据库获取结构化数据的装置12包括获取指令接收模块121和解码模块122。
[0026]其中,获取指令接收模块121用于接收从key-value数据库100获取经过编码后的结构化数据的指令。
[0027]解码模块122用于从key-value数据库100读取经过编码后的结构化数据并对经过编码后的数据进行解码。其中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1