CN110909000B - 一种数据处理方法、系统、装置及计算机可读存储介质 - Google Patents

一种数据处理方法、系统、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN110909000B
CN110909000B CN201911136399.5A CN201911136399A CN110909000B CN 110909000 B CN110909000 B CN 110909000B CN 201911136399 A CN201911136399 A CN 201911136399A CN 110909000 B CN110909000 B CN 110909000B
Authority
CN
China
Prior art keywords
data
request
target
processing
data request
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.)
Active
Application number
CN201911136399.5A
Other languages
English (en)
Other versions
CN110909000A (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.)
Shenzhen Onething Technology Co Ltd
Original Assignee
Shenzhen Onething 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 Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201911136399.5A priority Critical patent/CN110909000B/zh
Publication of CN110909000A publication Critical patent/CN110909000A/zh
Application granted granted Critical
Publication of CN110909000B publication Critical patent/CN110909000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种数据处理方法、系统、设备及计算机可读存储介质,应用于代理服务器,接收客户端发送的数据请求;对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;将处理后的数据请求发送至所述couchbase数据库,以对数据请求进行处理;接收couchbase数据库对应数据请求返回的第一处理结果;对第一处理结果进行处理,以将第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;将第二处理结果发送至客户端。本申请中,通过couchbase实现了Redis对数据请求进行处理的功能,使得用户可以灵活选择使用couchbase或者Redis,提高了数据处理效率。

Description

一种数据处理方法、系统、装置及计算机可读存储介质
技术领域
本申请涉及数据处理技术领域,更具体地说,涉及一种数据处理方法、系统、装置及计算机可读存储介质。
背景技术
随着大数据时代的到来,数据量越来越大,数据的存储方式也越来越多样性,现有的一种数据存储方式是借助Redis存储数据,相应的,借助Redis对数据进行处理。本申请所涉及的Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并能提供多种语言的API。
然而,Redis内存相对来说价格昂贵,单个Redis的内存上限并不高,并且在使用多个Redis时,gossip协议开销过大,通信压力高,数据处理效率低。
综上所述,如何提高数据处理效率是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据处理方法,其能在一定程度上解决如何提高数据处理效率的技术问题。本申请还提供了一种数据处理系统、装置及计算机可读存储介质。
为了实现上述目的,本申请提供一种数据处理方法,应用于代理服务器,包括:
接收客户端发送的数据请求;
对所述数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;
将处理后的数据请求发送至所述couchbase数据库,以对所述数据请求进行处理;
接收所述couchbase数据库对应所述数据请求返回的第一处理结果;
对所述第一处理结果进行处理,以将所述第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;
将所述第二处理结果发送至所述客户端。
优选的,所述在接收客户端发送的数据请求之后,所述在对所述数据请求处理之前,还包括:
确定对所述数据请求的处理模式;
若确定的处理模式中不包括采用couchbase数据库进行处理,则将所述数据请求发送至所述redis数据库,以对所述数据请求进行处理;
接收所述redis数据库对应所述数据请求返回的第三处理结果;
将所述第三处理结果发送至所述客户端。
优选的,所述对所述数据请求进行处理,包括:
按照set数据结构对所述数据请求进行编码,得到编码数据请求;
所述对所述第一处理结果进行处理,包括:
按照所述set数据结构对所述第一处理结果进行解码,得到第四处理结果;
对所述第四处理结果进行处理。
优选的,所述将所述第二处理结果发送至所述客户端,包括:
按照所述客户端的数据结构对所述第二处理结果进行编码,得到第五处理结果;
传输所述第五处理结果至所述客户端。
优选的,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为数据写入请求,则获取所述数据请求中的目标待写入数据;
计算所述目标待写入数据的第一哈希值;
按照写入标识、哈希值、待写入数据的格式,将所述第一哈希值及所述目标待写入数据编写为数据写入编码请求;
其中,所述couchbase数据库对所述编码请求进行处理,包括:
在所述couchbase数据库中,基于所述数据写入编码请求中的所述第一哈希值确定目标槽位;
将所述目标待写入数据存储至所述目标槽位中;
基于所述目标待写入数据的存储信息生成第一写入结果。
优选的,所述在所述couchbase数据库中,基于所述数据写入编码请求中的所述目标哈希值确定目标槽位之前,还包括:
在所述couchbase数据库中创建存储数据的集合,且所述集合中槽位的数量为预设数量。
优选的,所述将所述目标待写入数据存储至所述目标槽位中,所述基于所述目标待写入数据的存储信息生成所述第一写入结果,包括:
判断所述目标槽位中是否存储有数据;
若否,则将所述目标待写入数据存储至所述目标槽位中,并生成表示写入1个数据的第一写入结果;
若是,则直接生成表示未写入数据的第一写入结果。
优选的,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为集合长度获取请求,则获取所述数据请求中的目标集合标识信息;
按照集合长度获取命令标识、集合标识信息的格式,将所述目标集合标识信息编写为集合长度编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述集合长度编码请求中的目标集合标识信息确定目标集合;
确定所述目标集合中保存的元素数;
将所述元素数作为第一集合长度结果。
优选的,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为获取目标数量的集合元素,则获取所述数据请求中的目标数量;
按照集合元素获取命令标识、元素标识、数量的格式,将所述目标数量编写为集合元素编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,选取与所述目标数量对应的元素作为第一集合元素结果。
优选的,所述在所述couchbase数据库中,选取与所述目标数量对应的元素作为第一集合元素结果,包括:
判断所述couchbase数据库中是否存在元素;
若所述couchbase数据库中不存在元素,则生成表示不存在元素的第一集合元素结果;
若所述couchbase数据库中存在元素,则判断所述目标数量是否小于所述couchbase数据库中元素的总数量;
若所述目标数量大于等于所述总数量,则将所述couchbase数据库中的全部元素作为第一集合元素结果;
若所述目标数量小于所述总数量,则将所述couchbase数据库中的元素打乱,并选取所述目标数量的元素作为第一集合元素结果。
优选的,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为数据删除请求,则获取所述数据请求中的目标待删除数据;
计算所述目标待删除数据的第二哈希值;
按照删除标识、哈希值、待删除数据的格式,将所述第二哈希值及所述目标待删除数据编写为数据删除编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述数据删除编码请求中的所述第二哈希值确定目标槽位;
判断所述目标槽位中是否有数据;
若是,则删除所述目标槽位中的数据,并生成表示删除了1个数据的第一删除结果;
若否,则直接生成表示未删除数据的第一删除结果。
优选的,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为数据查询请求,则获取所述数据请求中的目标待查询数据;
计算所述目标待查询数据的第三哈希值;
按照数据查询标识、哈希值、待查询数据的格式,将所述第三哈希值及所述目标待查询数据编写为数据查询编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述数据查询编码请求中的所述第三哈希值确定目标槽位;
判断所述目标槽位中是否有所述目标待查询数据;
若是,则生成表示存有所述目标待查询数据的第一查询结果;
若否,则生成表示未存有所述目标待查询数据的第一查询结果。
优选的,所述couchbase数据库中哈希值的长度小于等于250字节。
优选的,还包括:
按照集合标识、集合元素个数的键值对形式保存所述couchbase数据库中的集合信息;
按照集合标识、拼接符、槽位标识的格式保存所述couchbase数据库中的元素信息。
为实现上述目的,本申请进一步提供一种数据处理系统,应用于代理服务器,包括:
第一接收模块,用于接收客户端发送的数据请求;
第一处理模块,用于对所述数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;
第一发送模块,用于将处理编码后的数据请求发送至所述couchbase数据库,以对所述数据请求进行处理;
第二接收模块,用于接收所述couchbase数据库对应所述数据请求返回的
第一处理结果;
第二处理模块,用于对所述第一处理结果进行处理,以将所述第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;
第二发送模块,用于将所述第二处理结果发送至所述客户端。
优选的,还包括:
第一确定模块,用于所述第一接收模块接收客户端发送的数据请求之后,所述第一处理模块对所述数据请求处理之前,确定对所述数据请求的处理模式;若确定的处理模式中不包括采用couchbase数据库进行处理,则将所述数据请求发送至所述redis数据库,以对所述数据请求进行处理;
第三接收模块,用于接收所述redis数据库对应所述数据请求返回的第三处理结果;
第三发送模块,用于将所述第三处理结果发送至所述客户端。
优选的,所述第一处理模块包括:
第一编码子模块,用于按照set数据结构对所述数据请求进行编码,得到编码数据请求;
所述第二处理模块包括:
第一解码子模块,用于按照所述set数据结构对所述第一处理结果进行解码,得到第四处理结果;
第一处理子模块,用于对所述第四处理结果进行处理。
优选的,所述第二发送模块包括:
第二编码子模块,用于按照所述客户端的数据结构对所述第二处理结果进行编码,得到第五处理结果;
第一发送子模块,用于传输所述第五处理结果至所述客户端。
优选的,所述第一编码子模块包括:
第一解析单元,用于解析所述数据请求的类型;若所述数据请求的类型为数据写入请求,则获取所述数据请求中的目标待写入数据;
第一计算单元,用于计算所述目标待写入数据的第一哈希值;
第一编写单元,用于按照写入标识、哈希值、待写入数据的格式,将所述第一哈希值及所述目标待写入数据编写为数据写入编码请求;
其中,所述couchbase数据库对所述编码请求进行处理,包括:
在所述couchbase数据库中,基于所述数据写入编码请求中的所述第一哈希值确定目标槽位;
将所述目标待写入数据存储至所述目标槽位中;
基于所述目标待写入数据的存储信息生成第一写入结果。
优选的,所述在所述couchbase数据库中,基于所述数据写入编码请求中的所述目标哈希值确定目标槽位之前,还包括:在所述couchbase数据库中创建存储数据的集合,且所述集合中槽位的数量为预设数量。
优选的,所述couchbase数据库将所述目标待写入数据存储至所述目标槽位中,所述基于所述目标待写入数据的存储信息生成所述第一写入结果,包括:判断所述目标槽位中是否存储有数据;若否,则将所述目标待写入数据存储至所述目标槽位中,并生成表示写入1个数据的第一写入结果;若是,则直接生成表示未写入数据的第一写入结果。
优选的,所述第一编码模块包括:
第二解析单元,用于解析所述数据请求的类型;若所述数据请求的类型为集合长度获取请求,则获取所述数据请求中的目标集合标识信息;
第二编写单元,用于按照集合长度获取命令标识、集合标识信息的格式,将所述目标集合标识信息编写为集合长度编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述集合长度编码请求中的目标集合标识信息确定目标集合;
确定所述目标集合中保存的元素数;
将所述元素数作为第一集合长度结果。
优选的,所述第一编码模块包括:
第三解析单元,用于解析所述数据请求的类型;若所述数据请求的类型为获取目标数量的集合元素,则获取所述数据请求中的目标数量;
第三编写单元,用于按照集合元素获取命令标识、元素标识、数量的格式,将所述目标数量编写为集合元素编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,选取与所述目标数量对应的元素作为第一集合元素结果。
优选的,所述在所述couchbase数据库中,选取与所述目标数量对应的元素作为第一集合元素结果,包括:判断所述couchbase数据库中是否存在元素;若所述couchbase数据库中不存在元素,则生成表示不存在元素的第一集合元素结果;若所述couchbase数据库中存在元素,则判断所述目标数量是否小于所述couchbase数据库中元素的总数量;若所述目标数量大于等于所述总数量,则将所述couchbase数据库中的全部元素作为第一集合元素结果;若所述目标数量小于所述总数量,则将所述couchbase数据库中的元素打乱,并选取所述目标数量的元素作为第一集合元素结果。
优选的,所述第一编码模块包括:
第四解析单元,用于解析所述数据请求的类型;若所述数据请求的类型为数据删除请求,则获取所述数据请求中的目标待删除数据;
第二计算单元,用于计算所述目标待删除数据的第二哈希值;
第四编写单元,用于按照删除标识、哈希值、待删除数据的格式,将所述第二哈希值及所述目标待删除数据编写为数据删除编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述数据删除编码请求中的所述第二哈希值确定目标槽位;
判断所述目标槽位中是否有数据;
若是,则删除所述目标槽位中的数据,并生成表示删除了1个数据的第一删除结果;
若否,则直接生成表示未删除数据的第一删除结果。
优选的,所述第一编码模块包括:
第五解析单元,用于解析所述数据请求的类型;若所述数据请求的类型为数据查询请求,则获取所述数据请求中的目标待查询数据;
第三计算单元,用于计算所述目标待查询数据的第三哈希值;
第五编写单元,用于按照数据查询标识、哈希值、待查询数据的格式,将所述第三哈希值及所述目标待查询数据编写为数据查询编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述数据查询编码请求中的所述第三哈希值确定目标槽位;
判断所述目标槽位中是否有所述目标待查询数据;
若是,则生成表示存有所述目标待查询数据的第一查询结果;
若否,则生成表示未存有所述目标待查询数据的第一查询结果。
优选的,所述couchbase数据库中哈希值的长度小于等于250字节。
优选的,还包括:
第一保存模块,用于按照集合标识、集合元素个数的键值对形式保存所述couchbase数据库中的集合信息;
第二保存模块,用于按照集合标识、拼接符、槽位标识的格式保存所述couchbase数据库中的元素信息。
为实现上述目的,本申请进一步提供一种数据处理装置,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如上任一所述的方法。
优选的,所述装置为组成CDN网络或者区块链网络的节点。
为实现上述目的,本申请进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序可被一个或者多个处理器执行,以实现如上任一所述的数据处理方法。
本申请提供的一种数据处理方法,应用于代理服务器,接收客户端发送的数据请求;对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;将处理后的数据请求发送至所述couchbase数据库,以对数据请求进行处理;接收couchbase数据库对应数据请求返回的第一处理结果;对第一处理结果进行处理,以将第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;将第二处理结果发送至客户端。本申请提供的一种数据处理方法,可以通过couchbase实现Redis对数据请求进行处理的功能,从而使得用户可以灵活选择使用couchbase或者Redis,与单一根据Redis数据库对数据请求进行处理的现有技术相比,可以提高数据处理效率。本申请提供的一种数据处理系统、装置及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请第一实施例的流程示意图;
图2为代理服务器与客户端、Redis、couchbase的连接关系图;
图3为本申请第二实施例的流程示意图;
图4为本申请第三实施例的流程示意图;
图5为本申请第四实施例的流程示意图;
图6为本申请第五实施例的流程示意图;
图7为本申请第六实施例的流程示意图;
图8为本申请第七实施例的流程示意图;
图9为本申请一实施例揭露的数据处理系统的结构示意图;
图10为本申请一实施例揭露的数据处理装置的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本申请提供一种数据处理方法,应用于代理服务器。
请参照图1,图1为本申请第一实施例的流程示意图。
在第一实施例中,该方法包括:
步骤S101:接收客户端发送的数据请求。
实际应用中,可以先接收客户端发送的数据请求,数据请求的类型可以根据实际需要确定,比如其可以为数据写入请求、数据读取请求、数据查询请求等。
步骤S102:对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别。
实际应用中,在接收数据请求后,便可以对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别,也即本申请并不将自身连接的数据库限定为Redis数据库,可以根据实际需要灵活选择自身的数据库为Redis数据库和/或couchbase数据库等。应当指出,本申请所涉及的couchbase是一个具有高性能、可扩展性和可用性强的数据库引擎,其可以让开发人员通过NoSQL的键值存储(二进制或者JSON)或者使用N1QL的形式对数据进行操作,其中,N1QL是非常类似于SQL的一种语法操作JSON数据的方式。
步骤S103:将处理后的数据请求发送至couchbase数据库,以对数据请求进行处理。
实际应用中,在对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别之后,便可以将处理后的数据请求发送至couchbase数据库,以使couchbase数据库对数据请求进行处理。
步骤S104:接收couchbase数据库对应数据请求返回的第一处理结果。
步骤S105:对第一处理结果进行处理,以将第一处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S106:将第二处理结果发送至客户端。
实际应用中,在将处理后的数据请求发送至couchbase数据库,以使couchbase数据库对数据请求进行处理之后,便可以等待接收couchbase数据库对应数据请求返回的第一处理结果,再对第一处理结果进行处理,以将第一处理结果转化为Redis数据库返回的数据结构的第二处理结果,从而借助couchbase数据库实现Redis数据库的功能,最后将第二处理结果发送至客户端。
应当指出,本申请提供的数据处理方法可以应用于数据库的代理服务器,此时,代理服务器连接的数据库可以为单一的Redis数据库或者couchbase数据库,也可以为Redis数据库和couchbase数据库等,请参照图2,图2为代理服务器与客户端、Redis、couchbase的连接关系图。
本申请提供的一种数据处理方法,应用于代理服务器,接收客户端发送的数据请求;对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;将处理后的数据请求发送至所述couchbase数据库,以对数据请求进行处理;接收couchbase数据库对应数据请求返回的第一处理结果;对第一处理结果进行处理,以将第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;将第二处理结果发送至客户端。本申请提供的一种数据处理方法,可以通过couchbase实现Redis对数据请求进行处理的功能,从而使得用户可以灵活选择使用couchbase或者Redis,与单一根据Redis数据库对数据请求进行处理的现有技术相比,可以提高数据处理效率。
在第一实施例中,为了使得代理服务器可以灵活调用连接的couchbase数据库或者Redis数据库对数据请求进行处理,代理服务器在接收客户端发送的数据请求之后,在对数据请求处理之前,还可以确定对数据请求的处理模式;若确定的处理模式中不包括采用couchbase数据库进行处理,则将数据请求发送至redis数据库,以对数据请求进行处理;接收redis数据库对应数据请求返回的第三处理结果;将第三处理结果发送至客户端。也即代理服务器确定的处理模式中不包括采用couchbase数据库进行处理的情况下,可以采用Redis数据库对数据请求进行处理,而在处理模式中包括采用couchbase数据库进行处理时,则采用couchbase数据库进行处理。
请参照图3,图3为本申请第二实施例的流程示意图。
在第二实施例中,该方法包括:
步骤S301:接收客户端发送的数据请求。
步骤S302:按照set数据结构对数据请求进行编码,得到编码数据请求。
步骤S303:将处理后的数据请求发送至couchbase数据库,以对数据请求进行处理。
步骤S304:接收couchbase数据库对应数据请求返回的第一处理结果。
步骤S305:按照set数据结构对第一处理结果进行解码,得到第四处理结果。实际应用中,couchbase与Redis的数据结构并不相同,如果本申请应用couchbase与Redis来进行数据处理,则可能需要不同的数据处理方法,为了可以用同样的数据处理方法来应用couchbase与Redis进行数据处理,可以统一couchbase与Redis的数据结构,比如couchbase与Redis均可以采用set数据结构等,则在接收到数据请求后,可以按照set数据结构对数据请求进行编码,得到编码数据请求,再基于Redis与couchbase对编码数据请求进行处理,得到第一处理结果;此外,由于代理服务器可能无法识别第一处理结果,因此代理服务器在接收到第一处理结果之后,可以按照set数据结构对第一处理结果进行解码,得到第四处理结果。本申请所涉及的set数据结构指的是一种类似于数组,但是成员都是唯一,没有重复值的数据结构。
步骤S306:对第四处理结果进行处理,以将第四处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S307:将第二处理结果发送至客户端。实际应用中,客户端与Redis和/或couchbase的数据结构可能不同,则传输处理结果至客户端时,可能还需按照客户端的数据结构对第二处理结果进行编码,得到第五处理结果,传输第五处理结果至客户端。
请参照图4,图4为本申请第三实施例的流程示意图。
在第三实施例中,该方法包括:
步骤S401:接收客户端发送的数据请求。
步骤S402:解析数据请求的类型,若数据请求的类型为数据写入请求,则获取数据请求中的目标待写入数据。
步骤S403:计算目标待写入数据的第一哈希值。
应当指出,在couchbase中,由于couchbase所能支持的数据长度为250字节,所以couchbase中哈希值的长度应小于等于250字节。
步骤S404:按照写入标识、哈希值、待写入数据的格式,将第一哈希值及目标待写入数据编写为数据写入编码请求。
实际应用中,可以根据数据的哈希值来决定数据在Redis和/或couchbase中的存储位置,则当数据请求为数据写入请求时,可以计算目标待写入数据的第一哈希值,并按照写入标识、哈希值、待写入数据的格式,将第一哈希值及目标待写入数据编写为数据写入编码请求,假设写入标识为sadd,目标待写入数据为张zhangsan,目标待写入数据的第一哈希值为dcf,则数据写入编码请求可以为:sadd dcf zhangsan。
步骤S405:将数据写入编码请求发送至couchbase数据库,以对数据写入编码请求进行处理。
步骤S406:接收couchbase数据库对应数据写入编码请求返回的第一处理结果。
步骤S407:按照set数据结构对第一处理结果进行解码,得到第四处理结果。
步骤S408:对第四处理结果进行处理,以将第四处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S409:将第二处理结果发送至客户端。
其中,couchbase数据库对数据写入编码请求的处理过程如下:
步骤S11:在couchbase中,基于数据写入编码请求中的第一哈希值确定目标槽位。
实际应用中,为了保证couchbase中存在可用的槽位,在couchbase中,基于数据写入编码请求中的目标哈希值确定目标槽位之前,还可以在couchbase中创建存储数据的集合,且集合中槽位的数量为预设数量。在此过程中,可以创建多个集合,且每个集合中槽位的数量均为预设数量。相应的,可以按照集合标识、集合元素个数的键值对形式保存couchbase中的集合信息,按照集合标识、拼接符、槽位标识的格式保存couchbase中的元素信息。假设一个集合的标识为fruit,该集合中保存有5个元素,则该集合信息可以表示为fruit 5,假设该集合中有个元素为apple,且该元素保存在第三个槽位,则apple的元素信息可以表示为fruit/3,其中,/表示拼接符。具体应用场景中,在表示集合中的元素信息时,同一集合中的各个元素间可以通过分隔符来隔开,分隔符可以为“,”等。
步骤S12:将目标待写入数据存储至目标槽位中,基于目标待写入数据的存储信息生成第一写入结果。
实际应用中,由于set数据结构中数据的值唯一,所以目标槽位的存储信息决定了第一写入结果的类型,因此在将目标待写入数据存储至目标槽位中,基于目标待写入数据的存储信息生成第一写入结果时,可以判断目标槽位中是否存储有数据;若否,则将目标待写入数据存储至目标槽位中,并生成表示写入1个数据的第一写入结果;若是,则直接生成表示未写入数据的第一写入结果。应当指出,由于哈希值的唯一性、哈希值与槽位间对应关系的唯一性,目标槽位中存储有数据的话,也只能存储的是目标待写入数据,因此生成表示未写入数据的第一写入结果时,便表示目标槽位中已存储有该目标待写入数据,无需再次写入,生成表示写入1个数据的第一写入结果时,便表示目标槽位中并未存储该目标待写入数据,现已将该目标待写入数据写入至目标槽位中。
请参照图5,图5为本申请第四实施例的流程示意图。
在第四实施例中,该方法包括:
步骤S501:接收客户端发送的数据请求。
步骤S502:解析数据请求的类型,若数据请求的类型为集合长度获取请求,则获取数据请求中的目标集合标识信息。
步骤S503:按照集合长度获取命令标识、集合标识信息的格式,将目标集合标识信息编写为集合长度编码请求。
实际应用中,当数据请求为获取数据库中某个集合的长度时,可以获取数据请求中的目标集合标识信息,按照集合长度获取命令标识、集合标识信息的格式,将目标集合标识信息编写为集合长度编码请求,以集合长度获取命令标识为scard,目标集合标识信息为fruit为例,则该集合长度编码请求可以表示为:scard fruit等。
步骤S504:将集合长度编码请求发送至couchbase数据库,以对集合长度编码请求进行处理。
步骤S505:接收couchbase数据库对应集合长度编码请求返回的第一处理结果。
步骤S506:按照set数据结构对第一处理结果进行解码,得到第四处理结果。
步骤S507:对第四处理结果进行处理,以将第四处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S508:将第二处理结果发送至客户端。
其中,couchbase数据库对集合长度编码请求的处理过程如下:
步骤S21:在couchbase中,基于集合长度编码请求中的目标集合标识信息确定目标集合。
步骤S22:确定目标集合中保存的元素数,将元素数作为第一集合长度结果。
实际应用中,为了最大简便的借助第一集合长度结果表示目标集合中保存的元素数,可以直接将目标集合中保存的元素数作为第一结合长度结果,比如第一集合长度结果为5时,便表示目标集合中存在5个元素。
请参照图6,图6为本申请第五实施例的流程示意图。
在第五实施例中,该方法包括:
步骤S601:接收客户端发送的数据请求。
步骤S602:解析数据请求的类型,若数据请求的类型为获取目标数量的集合元素,则获取数据请求中的目标数量。
步骤S603:按照集合元素获取命令标识、元素标识、数量的格式,将目标数量编写为集合元素编码请求。
实际应用中,当数据请求为获取目标数量的集合元素时,可以获取数据请求中的目标数据,按照集合元素获取命令标识、元素表示、数量的格式,将目标数量编写为集合元素编码请求,比如集合元素获取命令标识为srandmember,元素标识为key,目标数量为10,则集合元素编码请求可以表示为:srandmenber key[10]等。
步骤S604:将集合元素编码请求发送至couchbase数据库,以对集合元素编码请求进行处理。
步骤S605:接收couchbase数据库对应集合元素编码请求返回的第一处理结果。
步骤S606:按照set数据结构对第一处理结果进行解码,得到第四处理结果。
步骤S607:对第四处理结果进行处理,以将第四处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S608:将第二处理结果发送至客户端。
其中,couchbase数据库对集合元素编码请求的处理过程如下:
在couchbase中,选取与目标数量对应的元素作为第一集合元素结果。
实际应用中,couchbase中可能存在元素,也可能不存在元素,且存在元素的数量可能与目标数量不匹配,则在couchbase中,选取与目标数量对应的元素作为第一集合元素结果时,可以先判断couchbase中是否存在元素;若couchbase中不存在元素,则生成表示不存在元素的第一集合元素结果;若couchbase中存在元素,则判断目标数量是否小于couchbase中元素的总数量;若目标数量大于等于总数量,则将couchbase中的全部元素作为第一集合元素结果;若目标数量小于总数量,则将couchbase中的元素打乱,并选取目标数量的元素作为第一集合元素结果。
请参照图7,图7为本申请第六实施例的流程示意图。
在第六实施例中,该方法包括:
步骤S701:接收客户端发送的数据请求。
步骤S702:解析数据请求的类型,若数据请求的类型为数据删除请求,则获取数据请求中的目标待删除数据。
步骤S703:计算目标待删除数据的第二哈希值。
步骤S704:按照删除标识、哈希值、待删除数据的格式,将第二哈希值及目标待删除数据编写为数据删除编码请求。
实际应用中,当数据请求为表示删除数据库中的元素的请求时,可以获取数据请求中的目标待删除数据,计算目标待删除数据的第二哈希值,按照删除标识、哈希值、待删除数据的格式,将第二哈希值及目标待删除数据编写为数据删除编码请求,比如删除标识为srem,目标待删除数据为zhangsan,第二哈希值为dcf,则数据删除编码请求可以表示为srem dcf zhangsan等。
步骤S705:将数据删除编码请求发送至couchbase数据库,以对数据删除编码请求进行处理。
步骤S706:接收couchbase数据库对应数据删除编码请求返回的第一处理结果。
步骤S707:按照set数据结构对第一处理结果进行解码,得到第四处理结果。
步骤S708:对第四处理结果进行处理,以将第四处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S709:将第二处理结果发送至客户端。
其中,couchbase数据库对数据删除编码请求的处理过程如下:
步骤S31:在couchbase中,基于数据删除编码请求中的第二哈希值确定目标槽位。
步骤S32:判断目标槽位中是否有数据,若是,则执行步骤S33:删除目标槽位中的数据,并生成表示删除了1个数据的第一删除结果;若否,则执行步骤S34:直接生成表示未删除数据的第一删除结果。
实际应用中,生成表示删除了1个数据的第一删除结果便表示该目标待删除数据存在于数据库中,并且已被删除;生成表示未删除数据的第一删除结果,便表示该目标待删除数据未保存在数据库中,未执行删除操作;具体应用场景中,可以直接将删除数据的数量作为第一删除结果等。
请参照图8,图8为本申请第七实施例的流程示意图。
在第七实施例中,该方法包括:
步骤S801:接收客户端发送的数据请求。
步骤S802:解析数据请求的类型,若数据请求的类型为数据查询请求,则获取数据请求中的目标待查询数据。
步骤S803:计算目标待查询数据的第三哈希值。
步骤S804:按照数据查询标识、哈希值、待查询数据的格式,将第三哈希值及目标待查询数据编写为数据查询编码请求。
实际应用中,数据请求可能为查询某个数据是否在数据库中的请求,此时,可以获取数据请求中的目标待查询数据,计算第三哈希值,按照数据查询标识、哈希值、待查询数据的格式,将第三哈希值及目标待查询数据编写为数据查询编码请求,以查询标识为sismember,目标待查询数据为zhangsan,第三哈希值为dcf为例,数据查询编码请求可以表示为sismember dcf zhangsan等。
步骤S805:将数据查询编码请求发送至couchbase数据库,以对数据查询编码请求进行处理。
步骤S806:接收couchbase数据库对应数据查询编码请求返回的第一处理结果。
步骤S807:按照set数据结构对第一处理结果进行解码,得到第四处理结果。
步骤S808:对第四处理结果进行处理,以将第四处理结果转化为Redis数据库返回的数据结构的第二处理结果。
步骤S809:将第二处理结果发送至客户端。
其中,couchbase数据库对数据查询编码请求的处理过程如下:
步骤S41:在couchbase中,基于数据查询编码请求中的第三哈希值确定目标槽位。
步骤S42:判断目标槽位中是否有目标待查询数据;若是,则执行步骤S43:生成表示存有目标待查询数据的第一查询结果;若否,则执行步骤S44:生成表示未存有目标待查询数据的第一查询结果。
实际应用中,可以将第一查询结果设置为1来表示数据库中存储有目标待查询数据,将第一查询结果设置为0来表示数据库中未存有目标待查询数据等。
另一方面,本申请提供一种数据处理系统,应用于代理服务器。
请参照图9,图9为本申请一实施例揭露的数据处理系统的结构示意图。
本申请提供的一种数据处理系统,可以包括:
第一接收模块901,用于接收客户端发送的数据请求;
第一处理模块902,用于对数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;
第一发送模块903,用于将处理编码后的数据请求发送至couchbase数据库,以对数据请求进行处理;
第二接收模块904,用于接收couchbase数据库对应数据请求返回的第一处理结果;
第二处理模块905,用于对第一处理结果进行处理,以将第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;
第二发送模块906,用于将第二处理结果发送至客户端。
本申请提供的数据处理系统中各个模块的具体功能请参阅上述实施例中的相应描述,在此不再赘述。
另一方面,本申请提供一种数据处理装置。
参照图10,图10为本申请一实施例揭露的数据处理装置的内部结构示意图。
本实施例中,数据处理装置1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
该数据处理装置1可以是组成CDN网络或者区块链网络的节点。
该数据处理装置1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是数据处理装置1的内部存储单元,例如该数据处理装置1的硬盘。存储器11在另一些实施例中也可以是数据处理装置1的外部存储设备,例如数据处理装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括数据处理装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于数据处理装置1的应用软件及各类数据,例如数据处理程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据处理程序01等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,数据处理装置还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该数据处理装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在数据处理装置1中处理的信息以及用于显示可视化的用户界面。
图10仅示出了具有组件11-14以及数据处理程序01的数据处理装置1,本领域技术人员可以理解的是,图10示出的结构并不构成对数据处理装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请提供的一种计算机可读存储介质,计算机可读存储介质上存储有数据处理程序,数据处理程序可被一个或者多个处理器执行,以实现如上任一实施例所描述的数据处理方法。
这里所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (16)

1.一种数据处理方法,其特征在于,应用于代理服务器,包括:
接收客户端发送的数据请求;
对所述数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;
将处理后的数据请求发送至所述couchbase数据库,以对所述数据请求进行处理;
接收所述couchbase数据库对应所述数据请求返回的第一处理结果;
对所述第一处理结果进行处理,以将所述第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;
将所述第二处理结果发送至所述客户端;
其中,所述couchbase数据库中预先创建有集合,且所述集合中包括预设数量的用于存储数据的槽位;
其中,所述对所述数据请求进行处理,包括:
按照set数据结构对所述数据请求进行编码,得到编码数据请求;
所述对所述第一处理结果进行处理,包括:
按照所述set数据结构对所述第一处理结果进行解码,得到第四处理结果;
对所述第四处理结果进行处理。
2.根据权利要求1所述的方法,其特征在于,在接收客户端发送的数据请求之后,在对所述数据请求处理之前,还包括:
确定对所述数据请求的处理模式;
若确定的处理模式中不包括采用couchbase数据库进行处理,则将所述数据请求发送至所述Redis数据库,以对所述数据请求进行处理;
接收所述Redis数据库对应所述数据请求返回的第三处理结果;
将所述第三处理结果发送至所述客户端。
3.根据权利要求1所述的方法,其特征在于,所述将所述第二处理结果发送至所述客户端,包括:
按照所述客户端的数据结构对所述第二处理结果进行编码,得到第五处理结果;
传输所述第五处理结果至所述客户端。
4.根据权利要求1所述的方法,其特征在于,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为数据写入请求,则获取所述数据请求中的目标待写入数据;
计算所述目标待写入数据的第一哈希值;
按照写入标识、哈希值、待写入数据的格式,将所述第一哈希值及所述目标待写入数据编写为数据写入编码请求;
其中,所述couchbase数据库对所述编码请求进行处理,包括:
在所述couchbase数据库中,基于所述数据写入编码请求中的所述第一哈希值确定目标槽位;
将所述目标待写入数据存储至所述目标槽位中;
基于所述目标待写入数据的存储信息生成第一写入结果。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标待写入数据存储至所述目标槽位中,所述基于所述目标待写入数据的存储信息生成所述第一写入结果,包括:
判断所述目标槽位中是否存储有数据;
若否,则将所述目标待写入数据存储至所述目标槽位中,并生成表示写入1个数据的第一写入结果;
若是,则直接生成表示未写入数据的第一写入结果。
6.根据权利要求1所述的方法,其特征在于,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为集合长度获取请求,则获取所述数据请求中的目标集合标识信息;
按照集合长度获取命令标识、集合标识信息的格式,将所述目标集合标识信息编写为集合长度编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述集合长度编码请求中的目标集合标识信息确定目标集合;
确定所述目标集合中保存的元素数;
将所述元素数作为第一集合长度结果。
7.根据权利要求1所述的方法,其特征在于,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为获取目标数量的集合元素,则获取所述数据请求中的目标数量;
按照集合元素获取命令标识、元素标识、数量的格式,将所述目标数量编写为集合元素编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,选取与所述目标数量对应的元素作为第一集合元素结果。
8.根据权利要求7所述的方法,其特征在于,所述在所述couchbase数据库中,选取与所述目标数量对应的元素作为第一集合元素结果,包括:
判断所述couchbase数据库中是否存在元素;
若所述couchbase数据库中不存在元素,则生成表示不存在元素的第一集合元素结果;
若所述couchbase数据库中存在元素,则判断所述目标数量是否小于所述couchbase数据库中元素的总数量;
若所述目标数量大于等于所述总数量,则将所述couchbase数据库中的全部元素作为第一集合元素结果;
若所述目标数量小于所述总数量,则将所述couchbase数据库中的元素打乱,并选取所述目标数量的元素作为第一集合元素结果。
9.根据权利要求1所述的方法,其特征在于,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为数据删除请求,则获取所述数据请求中的目标待删除数据;
计算所述目标待删除数据的第二哈希值;
按照删除标识、哈希值、待删除数据的格式,将所述第二哈希值及所述目标待删除数据编写为数据删除编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述数据删除编码请求中的所述第二哈希值确定目标槽位;
判断所述目标槽位中是否有数据;
若是,则删除所述目标槽位中的数据,并生成表示删除了1个数据的第一删除结果;
若否,则直接生成表示未删除数据的第一删除结果。
10.根据权利要求1所述的方法,其特征在于,所述按照set数据结构对所述数据请求进行编码,得到编码数据请求,包括:
解析所述数据请求的类型;
若所述数据请求的类型为数据查询请求,则获取所述数据请求中的目标待查询数据;
计算所述目标待查询数据的第三哈希值;
按照数据查询标识、哈希值、待查询数据的格式,将所述第三哈希值及所述目标待查询数据编写为数据查询编码请求;
其中,所述couchbase数据库对所述编码数据请求进行处理,包括:
在所述couchbase数据库中,基于所述数据查询编码请求中的所述第三哈希值确定目标槽位;
判断所述目标槽位中是否有所述目标待查询数据;
若是,则生成表示存有所述目标待查询数据的第一查询结果;
若否,则生成表示未存有所述目标待查询数据的第一查询结果。
11.根据权利要求4至10任一项所述的方法,其特征在于,所述couchbase数据库中哈希值的长度小于等于250字节。
12.根据权利要求11所述的方法,其特征在于,还包括:
按照集合标识、集合元素个数的键值对形式保存所述couchbase数据库中的集合信息;
按照集合标识、拼接符、槽位标识的格式保存所述couchbase数据库中的元素信息。
13.一种数据处理系统,其特征在于,应用于代理服务器,包括:
第一接收模块,用于接收客户端发送的数据请求;
第一处理模块,用于对所述数据请求进行处理,以使得处理后的数据请求能够被couchbase数据库识别;
第一发送模块,用于将处理编码后的数据请求发送至所述couchbase数据库,以对所述数据请求进行处理;
第二接收模块,用于接收所述couchbase数据库对应所述数据请求返回的第一处理结果;
第二处理模块,用于对所述第一处理结果进行处理,以将所述第一处理结果转化为Redis数据库返回的数据结构的第二处理结果;
第二发送模块,用于将所述第二处理结果发送至所述客户端;
其中,所述couchbase数据库中预先创建有集合,且所述集合中包括预设数量的用于存储数据的槽位;
其中,所述第一处理模块用于:按照set数据结构对所述数据请求进行编码,得到编码数据请求;
所应用第二处理模块用于:按照所述set数据结构对所述第一处理结果进行解码,得到第四处理结果;对所述第四处理结果进行处理。
14.一种数据处理装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据处理程序,所述数据处理程序被所述处理器执行时实现如权利要求1至12任一项所述的方法。
15.根据权利要求14所述的装置,其特征在于,所述装置为组成CDN网络或者区块链网络的节点。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序可被一个或者多个处理器执行,以实现如权利要求1至12中任一项所述的数据处理方法。
CN201911136399.5A 2019-11-19 2019-11-19 一种数据处理方法、系统、装置及计算机可读存储介质 Active CN110909000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911136399.5A CN110909000B (zh) 2019-11-19 2019-11-19 一种数据处理方法、系统、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911136399.5A CN110909000B (zh) 2019-11-19 2019-11-19 一种数据处理方法、系统、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110909000A CN110909000A (zh) 2020-03-24
CN110909000B true CN110909000B (zh) 2023-05-12

Family

ID=69817972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911136399.5A Active CN110909000B (zh) 2019-11-19 2019-11-19 一种数据处理方法、系统、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110909000B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113761088A (zh) * 2020-07-01 2021-12-07 北京沃东天骏信息技术有限公司 一种处理位置数据的方法和装置
CN112256931A (zh) * 2020-10-26 2021-01-22 北京神州数字科技有限公司 一种数据提取方法
CN112612802A (zh) * 2020-12-19 2021-04-06 前海飞算科技(深圳)有限公司 一种实时数据中台的处理方法、装置及平台
CN113627938A (zh) * 2021-08-24 2021-11-09 上海点融信息科技有限责任公司 一种区块链的数据删除方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313644A (zh) * 2016-04-06 2019-02-05 里尼阿克股份有限公司 数据库代理所用的系统和方法
CN110209719A (zh) * 2019-05-20 2019-09-06 华南理工大学 一种基于微服务架构的多种数据库统一访问系统及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2773153A1 (en) * 2009-09-04 2011-03-10 Redknee Inc. Data broker method, apparatus and system
CN109726313A (zh) * 2018-12-28 2019-05-07 中国银行股份有限公司 操作数据库的方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109313644A (zh) * 2016-04-06 2019-02-05 里尼阿克股份有限公司 数据库代理所用的系统和方法
CN110209719A (zh) * 2019-05-20 2019-09-06 华南理工大学 一种基于微服务架构的多种数据库统一访问系统及方法

Also Published As

Publication number Publication date
CN110909000A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
CN110909000B (zh) 一种数据处理方法、系统、装置及计算机可读存储介质
CN108427705B (zh) 电子装置、分布式系统日志查询方法及存储介质
CN112765271B (zh) 区块链交易索引的存储方法、装置、计算机设备及介质
CN109918018B (zh) 一种数据存储方法及存储设备
CN111857550B (zh) 用于数据去重的方法、设备以及计算机可读介质
CN110442773B (zh) 分布式系统中节点缓存方法、系统、装置及计算机介质
CN110505162B (zh) 消息传输方法、装置及电子设备
CN108846753B (zh) 用于处理数据的方法和装置
CN107172070B (zh) 资源访问处理方法及装置
US20140214890A1 (en) Database shard arbiter
CN108984103B (zh) 用于去重的方法和设备
CN111400334B (zh) 数据处理方法、装置、存储介质及电子装置
CN112307369A (zh) 一种短链接处理方法、装置、终端及存储介质
CN111277635A (zh) 一种外部节点接入区块链方法、设备、装置及计算机介质
JP2017514416A5 (zh)
CN109947667B (zh) 数据访问预测方法和装置
CN114237806B (zh) 一种页面信息的显示方法、装置、电子设备及存储介质
CN108600255B (zh) Mock服务管理方法、装置、计算机设备以及存储介质
CN112100092A (zh) 一种信息缓存方法、装置、设备及介质
CN113342813B (zh) 键值数据处理方法、装置、计算机设备及可读存储介质
CN110458566B (zh) 一种区块链的账户地址生成方法、系统、装置及计算机可读存储介质
US8904411B2 (en) Framework for system communication for handling data
US20180314710A1 (en) Flattened document database with compression and concurrency
CN111680014B (zh) 共享文件的获取方法、装置、电子设备及存储介质
US11138075B2 (en) Method, apparatus, and computer program product for generating searchable index for a backup of a virtual machine

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant