CN105138533B - 用于访问ssdb服务器的方法和装置 - Google Patents

用于访问ssdb服务器的方法和装置 Download PDF

Info

Publication number
CN105138533B
CN105138533B CN201510370077.2A CN201510370077A CN105138533B CN 105138533 B CN105138533 B CN 105138533B CN 201510370077 A CN201510370077 A CN 201510370077A CN 105138533 B CN105138533 B CN 105138533B
Authority
CN
China
Prior art keywords
access request
protocol specification
request
data
protocol
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
CN201510370077.2A
Other languages
English (en)
Other versions
CN105138533A (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 Hongxiang Technical Service Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510370077.2A priority Critical patent/CN105138533B/zh
Publication of CN105138533A publication Critical patent/CN105138533A/zh
Application granted granted Critical
Publication of CN105138533B publication Critical patent/CN105138533B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种用于访问SSDB服务器的方法和装置。该方法包括:接收针对SSDB服务器发出的访问请求;根据访问请求中的指定字段来确定访问请求所遵循的协议规范,并按照该协议规范解析并处理访问请求;根据该协议规范构造并返回与处理结果相应的响应消息。根据本发明中的方法和装置,能够自动识别访问请求所遵循的协议规范,并执行相应的处理,因此,SSDB服务器不仅能够通过SSDB客户端进行访问,还能通过其他多种类型的客户端进行访问。

Description

用于访问SSDB服务器的方法和装置
技术领域
本发明涉及互联网技术领域,具体涉及一种用于访问SSDB服务器的方法和装置。
背景技术
Redis数据库是一种高性能的key-value数据库,它支持存储的value类型非常丰富,包括字符串(string)、链表(list)、集合(set)、有序集合(zset,sorted set)和哈希(hash)类型等。通过Redis数据库能够高效地处理多种数据类型,例如,需要动态排序的数据类型可以通过Redis数据库得到很好地处理。正是由于Redis数据库具备诸多优势,因此得到了越来越广泛的应用。但是,由于Redis数据库将数据全部存储在内存中,因而会占用大量的内存,这不仅影响了内存的其他用途,还会使Redis数据库的存储容量受到内存容量的制约。
SSDB数据库是一种高性能的支持丰富数据结构的非关系型数据库,其能够将数据存储在磁盘上,从而在一定程度上替代Redis数据库。通过SSDB数据库,能够将原本由Redis数据库存储在内存中的数据内容存储到磁盘上,从而避免了对内存的大量占用,且存储容量也不再受到内存容量的制约,能够存储更多的数据内容。因此,SSDB数据库能够存储海量的业务数据,更适合应用在大规模服务器上,越来越多的公司开始采用SSDB数据库替代Redis数据库。
但是,现有的SSDB服务器仅支持单一的SSDB协议,客户端只能通过SSDB协议来访问SSDB服务器中的内容,采用其他协议的客户端则无法正常访问SSDB服务器所提供的服务。对于目前仍在广泛使用的Redis客户端,以及遵循其他协议的多种客户端来说,无法正常使用SSDB服务器。这一局限性严重制约了SSDB服务器的推广和使用。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于访问SSDB服务器的方法和装置。
根据本发明的一个方面,提供了一种用于访问SSDB服务器的方法,其包括:接收针对SSDB服务器发出的访问请求;根据访问请求中的指定字段来确定访问请求所遵循的协议规范,并按照该协议规范解析并处理访问请求;根据该协议规范构造并返回与处理结果相应的响应消息。
根据本发明的另一方面,提供了一种用于访问SSDB服务器的装置,其包括:接收模块,适于接收针对SSDB服务器发出的访问请求;解析处理模块,适于根据访问请求中的指定字段来确定访问请求所遵循的协议规范,并按照协议规范解析并处理访问请求;响应模块,适于根据协议规范构造并返回与处理结果相应的响应消息。
根据本发明的用于访问SSDB服务器的方法和装置,在接收到访问请求后,能够根据访问请求中的指定字段来确定访问请求所遵循的协议规范,按照协议规范解析并处理访问请求,并且根据协议规范构造并返回与处理结果相应的响应消息。由此可见,在本发明中,能够自动识别访问请求所遵循的协议规范,并执行相应的处理,因此,SSDB服务器不仅能够通过SSDB客户端进行访问,还能通过其他多种类型的客户端进行访问。其他类型的客户端无需进行任何改变,只要按照其原本的协议规范即可。例如,对于Redis客户端来说,能够直接按照访问Redis服务器的方式来访问SSDB服务器,从而方便了其他客户端的使用,扩展了SSDB服务器的应用范围。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的用于访问SSDB服务器的方法的流程图;
图2示出了根据本发明另一个实施例的用于访问SSDB服务器的方法的流程图;以及,
图3示出了根据本发明一个实施例的用于访问SSDB服务器的装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种用于访问SSDB服务器的方法和装置,能够解决现有的SSDB服务器仅支持单一的SSDB协议,客户端只能通过SSDB协议来访问SSDB服务器中的内容,采用其他协议的客户端无法正常访问SSDB服务器所提供的服务的问题。
图1示出了根据本发明一个实施例的用于访问SSDB服务器的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S110,接收针对SSDB服务器发出的访问请求。
其中,访问请求可以通过多种协议规范来实现,例如,可以是通过SSDB协议规范来实现的SSDB访问请求,或者是通过Redis协议规范来实现的Redis访问请求,还可以是遵循HTTP协议的HTTP访问请求等。总之,本发明实施例对访问请求所遵循的具体协议规范不做限定。
步骤S120,根据访问请求中的指定字段来确定访问请求所遵循的协议规范。
具体地,在本步骤中,可以通过预先设定的协议规范对照表来确定访问请求中指定字段的具体位置,并根据该位置的字段内容进一步确定访问请求所遵循的协议规范。其中,该协议规范对照表中存储了常用的各种协议规范,以及每种协议规范所对应的特征字段的字段位置及字段特征。例如,以Redis协议规范为例来说,由于在Redis协议规范的请求协议中,第一个字节固定为“*”号,因此,可以在协议规范对照表中,将Redis协议规范中的请求协议的特征字段设定为第一个字节所对应的字段,且该字段的字段特征为“*”号,只要接收到的访问请求的第一个字节为“*”号,就确定其遵循Redis协议规范中的请求协议规范。
具体处理时,由于协议规范对照表中存储了多种协议规范,每种协议规范所对应的特征字段的字段位置及字段特征均不相同,因此,可以针对收到的访问请求,按照协议规范对照表中记录的各个协议规范的顺序逐一进行尝试,直到确定其满足某一协议规范为止。为了尽可能高效地确定出该访问请求所遵循的协议规范,可以在协议规范对照表中动态记录每种协议规范的使用频率,并将各种协议规范按照使用频率进行动态排序,将使用频率较高的协议规范排在前面,以便优先尝试。
步骤S130,按照该访问请求所遵循的协议规范解析并处理该访问请求。
其中,解析得到的访问请求至少包括以下请求中的一个或多个:读取数据请求、更新数据请求和删除数据请求,其中,读取数据请求中包含get函数,更新数据请求中包含set函数,删除数据请求中包含delete函数。
步骤S140,根据该访问请求所遵循的协议规范构造并返回与处理结果相应的响应消息。
其中,响应消息至少包括以下类型中的一个或多个:状态回复类型、错误回复类型、整数回复类型、批量回复类型和多条批量回复类型。
根据本发明的用于访问SSDB服务器的方法,在接收到访问请求后,能够根据访问请求中的指定字段来确定访问请求所遵循的协议规范,按照协议规范解析并处理访问请求,并且根据协议规范构造并返回与处理结果相应的响应消息。由此可见,在本发明中,能够自动识别访问请求所遵循的协议规范,并执行相应的处理,因此,SSDB服务器不仅能够通过SSDB客户端进行访问,还能通过其他多种类型的客户端进行访问。其他类型的客户端无需进行任何改变,只要按照其原本的协议规范即可。例如,对于Redis客户端来说,能够直接按照访问Redis服务器的方式来访问SSDB服务器,从而方便了其他客户端的使用,扩展了SSDB服务器的应用范围。
图2示出了根据本发明另一个实施例的用于访问SSDB服务器的方法的流程图,如图2所示,该方法包括如下步骤:
步骤S210,接收针对SSDB服务器发出的访问请求。
在本实施例中,该访问请求例如可以是“*3\r\n$3\r\nset\r\n$1\r\na\r\n$1\r\n1\r\n”。其中,该访问请求为Redis访问请求,本领域技术人员能够理解的是,该访问请求也可以是其他类型的请求。
步骤S220,查询预设的协议规范对照表,根据该协议规范对照表中记录的各种协议规范所对应的特征字段的字段位置及字段特征来确定该访问请求所遵循的协议规范。
其中,该协议规范对照表是根据各种协议规范的结构特征来设定的,用于识别各种协议规范。具体地,在设定该协议规范对照表时,需要预先获取各种协议规范的结构格式,并分析每种协议规范在结构格式上的特点。例如,SSDB协议的协议格式定义如下:
Packet:=Block+'\n'
Block:=Size'\n'Data'\n'
Size:=literal_integer
Data:=size_bytes_of_data
Redis请求协议的协议格式定义如下:
*<参数数量>CR LF
$<参数1的字节数量>CR LF
<参数1的数据>CR LF
$<参数N的字节数量>CR LF
<参数N的数据>CR LF
Redis响应协议的协议格式定义如下:
状态回复(status reply)的第一个字节是"+"
错误回复(error reply)的第一个字节是"-"
整数回复(integer reply)的第一个字节是":"
批量回复(bulk reply)的第一个字节是"$"
多条批量回复(multi bulk reply)的第一个字节是"*"
通过上述的协议格式可以看出,在Redis请求协议中,第一个字节固定为“*”号。在Redis响应协议中,如果第一个字节为“+”号,则表示该响应为状态回复类型的Redis响应;如果第一个字节为“-”号,则表示该响应为错误回复类型的Redis响应;如果第一个字节为“:”号,则表示该响应为整数回复类型的Redis响应;如果第一个字节为“$”号,则表示该响应为批量回复类型的Redis响应;如果第一个字节为“*”号,则表示该响应为多条批量回复类型的Redis响应。表1示出了该协议规范对照表中的部分内容:
表1
协议规范名称 特征字段的位置 特征字段的特征
Redis请求协议 第一个字节 *
Redis响应协议(状态回复) 第一个字节 +
Redis响应协议(错误回复) 第一个字节 -
Redis响应协议(整数回复) 第一个字节
Redis响应协议(批量回复) 第一个字节 $
Redis响应协议(多条批量回复) 第一个字节 *
…… …… ……
除了表1所示出的关于Redis协议规范的部分内容之外,该协议规范对照表中通常还存储有多种其他协议规范,在其他协议规范中,特征字段的位置还可能是“最后一个字节”、“第n个字节”等多种位置,具体取决于相应协议的特点。
另外,在协议规范对照表中还可以动态存储每种协议规范的使用次数,每当确定出接收到的访问请求属于何种规范之后,就将该规范的使用次数加一,并且,协议规范对照表中的各种协议规范按照使用次数动态排序,使用次数越多,排序越靠前,从而能够优先查找使用次数多的协议规范,提高匹配效率。例如,在本步骤中,首先查询表1中的第一条记录,其记录了Redis请求协议的特征字段为第一个字节,字段特征为“*”号,因而,判断接收到的访问请求“*3\r\n$3\r\nset\r\n$1\r\na\r\n$1\r\n1\r\n”是否符合该特征,由于该访问请求的第一个字节是“*”,因此,判断出接收到的访问请求遵循Redis协议规范中的请求协议规范。
步骤S230,按照Redis协议规范中的请求协议规范解析并处理该访问请求。
具体地,针对“*3\r\n$3\r\nset\r\n$1\r\na\r\n$1\r\n1\r\n”访问请求来说,根据Redis请求协议规范进行解析:首先,根据“*3\r\n”字段得到该访问请求中包含的参数数量为3,根据“$3\r\n”字段得到该访问请求中的第一个参数的字节数量为3,根据“set\r\n”字段得到该访问请求中的第一个参数的数据为set,根据“$1\r\n”得到该访问请求中的第二个参数的字节数量为1,根据“a\r\n”字段得到该访问请求中的第二个参数的数据为a,根据“$1\r\n”得到该访问请求中的第三个参数的字节数量为1,根据“1\r\n”字段得到该访问请求中的第三个参数的数据为1。由此可见,该访问请求中共包含3个参数,第一个参数的字节数量为3,内容为set;第二个参数的字节数量为1,内容为a;第三个参数的字节数量为1,内容为1。因此,该访问请求的解析结果为“set a 1”。其中,“set”函数用于更新/设置数据内容,该访问请求用于将a的值设置为1。所以,在本步骤中,根据该访问请求将a的值设置为1。
通过上述解析结果看出,该访问请求为更新数据请求,用于将a的值更新为1。除了更新数据请求之外,SSDB服务器接收到的访问请求还可以是由get函数实现的读取数据请求、以及由delete函数实现的删除数据请求等各种请求。
步骤S240,按照Redis协议规范中的响应协议规范构造并返回与处理结果相应的响应消息。
由于在步骤S230中,已经成功地将a的值设置为1,因此,在本步骤中,应该将设置成功的状态回复给客户端。该回复类型属于状态回复,因此,根据Redis响应协议规范,响应消息的第一个字节应为“+”,所以,构造并返回“+ok”。发送上述访问请求的Redis客户端收到该响应消息后,根据Redis响应协议规范解析出“ok”。
除了返回状态回复类型的响应消息之外,取决于步骤S230的执行结果,在本步骤中还可以返回错误回复类型、整数回复类型、批量回复类型和多条批量回复类型的响应消息。例如,如果步骤S230执行失败,则返回错误回复类型的响应消息。或者,如果在步骤S230中需要同时执行多项任务,则可能返回批量回复类型或多条批量回复类型的响应消息。
通过上述的步骤S210至步骤S240,能够使SSDB服务器接收并识别多种协议类型的访问请求,从而扩展了SSDB服务器的应用范围。其他非SSDB类型的客户端,例如Redis客户端(包括hiredis,phpredis,redigo等),可以无感知地访问SSDB服务器。
另外,由于Redis数据库是一个键值型(key-value)的数据库,其通过键值对的方式能够灵活处理一些动态变化的数据内容。例如,对于游戏排行榜类的数据来说,不仅要存储每个游戏所对应的数据内容,还要基于每个游戏的用户使用频度,对各个游戏进行动态排序。假设某一款游戏在周末有大量用户使用,则该款游戏在周末时的排序将更加靠前。对于这类需要动态变化的数据来说,Redis数据库能够通过键值方式灵活处理,因此,Redis数据库在处理该类数据时具有显著的优势。在本发明中,为了使SSDB服务器也能灵活存储这类动态变化的数据,可以在上述的步骤S230中进一步包含以下操作:在处理访问请求的过程中,进一步判断该访问请求中是否包含非键值形式的数据内容,如果判断结果为是,将非键值形式的数据内容转换为键值形式的数据内容。也就是说,在本发明中,SSDB服务器能够将非键值形式的数据内容转换为键值形式的数据内容,进而通过key-value方式进行存储,以便在处理动态数据时具有与Redis数据库同等的优势。具体转换时,可以直接将非键值形式的数据记录中的指定内容(如第一个字节或最后一个字节等)作为该数据记录的键,将该数据记录的其余内容或全部内容作为该数据记录的值。或者,也可以通过一定的计算规则对非键值形式的数据记录中的指定内容进行计算,将计算结果作为该数据记录的键,将该数据记录的全部内容作为该数据记录的值。
另外,本发明实施例中的访问请求还可以通过远程方式发送,从而便于其他客户端通过网络远程访问SSDB服务器。
图3示出了根据本发明一个实施例的用于访问SSDB服务器的装置300的结构图。该用于访问SSDB服务器的装置300包括:
接收模块31,适于接收针对SSDB服务器发出的访问请求;
解析处理模块32,适于根据该访问请求中的指定字段来确定该访问请求所遵循的协议规范,并按照该协议规范解析并处理该访问请求;
响应模块33,适于根据该协议规范构造并返回与处理结果相应的响应消息。
其中,上述解析处理模块32通过以下方式确定访问请求中的指定字段:查询预设的协议规范对照表,根据该协议规范对照表中记录的各种协议规范所对应的特征字段的字段位置及字段特征来确定该访问请求中的指定字段,其中,该协议规范对照表中记录的各种协议规范按照使用次数动态排序。
例如,所述访问请求中的指定字段为第一个字节对应的字段,当该第一个字节对应的字段为Redis协议规范中的请求协议规范所规定的内容时,解析处理模块32确定该访问请求遵循Redis协议规范中的请求协议规范,则按照该请求协议规范解析并处理该访问请求;并且,响应模块33根据Redis协议规范中的响应协议规范构造并返回与处理结果相应的响应消息。
其中,访问请求至少包括以下请求中的一个或多个:读取数据请求、更新数据请求和删除数据请求,其中,读取数据请求中包含get函数,更新数据请求中包含set函数,删除数据请求中包含delete函数;响应消息至少包括以下类型中的一个或多个:状态回复类型、错误回复类型、整数回复类型、批量回复类型和多条批量回复类型。
另外,可选地,解析处理模块32在处理访问请求的过程中,进一步判断访问请求中是否包含非键值形式的数据内容,如果判断结果为是,将非键值形式的数据内容转换为键值形式的数据内容。
上述各个模块的具体工作原理可参见方法实施例中相应步骤的描述,此处不再赘述。
根据本发明的用于访问SSDB服务器的方法和装置,在接收到访问请求后,能够根据访问请求中的指定字段来确定访问请求所遵循的协议规范,按照协议规范解析并处理访问请求,并且根据协议规范构造并返回与处理结果相应的响应消息。由此可见,在本发明中,能够自动识别访问请求所遵循的协议规范,并执行相应的处理,因此,SSDB服务器不仅能够通过SSDB客户端进行访问,还能通过其他多种类型的客户端进行访问。其他类型的客户端无需进行任何改变,只要按照其原本的协议规范即可。例如,对于Redis客户端来说,能够直接按照访问Redis服务器的方式来访问SSDB服务器,从而方便了其他客户端的使用,扩展了SSDB服务器的应用范围。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于访问SSDB服务器的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (12)

1.一种用于访问SSDB服务器的方法,其包括:
预先获取各种协议规范的结构格式,根据各种协议规范的结构特征设定用于识别各种协议规范的协议规范对照表;
接收针对所述SSDB服务器发出的访问请求;
根据所述访问请求中的指定字段来确定所述访问请求所遵循的协议规范,并按照所述协议规范解析并处理所述访问请求;
根据所述协议规范构造并返回与处理结果相应的响应消息;
其中,所述访问请求中的指定字段通过以下方式确定:查询所述协议规范对照表,根据该协议规范对照表中记录的各种协议规范所对应的特征字段的字段位置及字段特征来确定该访问请求中的指定字段。
2.根据权利要求1所述的方法,其中,所述协议规范对照表中记录的各种协议规范按照使用次数动态排序。
3.根据权利要求1或2所述的方法,其中,所述访问请求中的指定字段为第一个字节对应的字段,当所述第一个字节对应的字段为Redis协议规范中的请求协议规范所规定的内容时,确定所述访问请求遵循Redis协议规范中的请求协议规范,则按照所述请求协议规范解析并处理所述访问请求;并且,根据Redis协议规范中的响应协议规范构造并返回与处理结果相应的响应消息。
4.根据权利要求1或2所述的方法,其中,所述访问请求至少包括以下请求中的一个或多个:读取数据请求、更新数据请求和删除数据请求,其中,所述读取数据请求中包含get函数,所述更新数据请求中包含set函数,所述删除数据请求中包含delete函数;
所述响应消息至少包括以下类型中的一个或多个:状态回复类型、错误回复类型、整数回复类型、批量回复类型和多条批量回复类型。
5.根据权利要求1或2所述的方法,其中,在处理所述访问请求的过程中,进一步判断所述访问请求中是否包含非键值形式的数据内容,如果判断结果为是,将所述非键值形式的数据内容转换为键值形式的数据内容。
6.一种用于访问SSDB服务器的装置,其包括:
接收模块,适于接收针对所述SSDB服务器发出的访问请求;
解析处理模块,适于根据所述访问请求中的指定字段来确定所述访问请求所遵循的协议规范,并按照所述协议规范解析并处理所述访问请求;
响应模块,适于根据所述协议规范构造并返回与处理结果相应的响应消息;
所述装置进一步用于:预先获取各种协议规范的结构格式,根据各种协议规范的结构特征设定用于识别各种协议规范的协议规范对照表;
其中,所述解析处理模块通过以下方式确定所述访问请求中的指定字段:查询所述协议规范对照表,根据该协议规范对照表中记录的各种协议规范所对应的特征字段的字段位置及字段特征来确定该访问请求中的指定字段。
7.根据权利要求6所述的装置,其中,所述协议规范对照表中记录的各种协议规范按照使用次数动态排序。
8.根据权利要求6或7所述的装置,其中,所述访问请求中的指定字段为第一个字节对应的字段,当所述第一个字节对应的字段为Redis协议规范中的请求协议规范所规定的内容时,所述解析处理模块确定所述访问请求遵循Redis协议规范中的请求协议规范,则按照所述请求协议规范解析并处理所述访问请求;并且,所述响应模块根据Redis协议规范中的响应协议规范构造并返回与处理结果相应的响应消息。
9.根据权利要求6或7所述的装置,其中,所述访问请求至少包括以下请求中的一个或多个:读取数据请求、更新数据请求和删除数据请求,其中,所述读取数据请求中包含get函数,所述更新数据请求中包含set函数,所述删除数据请求中包含delete函数;
所述响应消息至少包括以下类型中的一个或多个:状态回复类型、错误回复类型、整数回复类型、批量回复类型和多条批量回复类型。
10.根据权利要求6或7所述的装置,其中,所述解析处理模块在处理所述访问请求的过程中,进一步判断所述访问请求中是否包含非键值形式的数据内容,如果判断结果为是,将所述非键值形式的数据内容转换为键值形式的数据内容。
11.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-5中任一项所述的用于访问SSDB服务器的方法对应的操作。
12.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-5中任一项所述的用于访问SSDB服务器的方法对应的操作。
CN201510370077.2A 2015-06-29 2015-06-29 用于访问ssdb服务器的方法和装置 Active CN105138533B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510370077.2A CN105138533B (zh) 2015-06-29 2015-06-29 用于访问ssdb服务器的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510370077.2A CN105138533B (zh) 2015-06-29 2015-06-29 用于访问ssdb服务器的方法和装置

Publications (2)

Publication Number Publication Date
CN105138533A CN105138533A (zh) 2015-12-09
CN105138533B true CN105138533B (zh) 2019-03-05

Family

ID=54723883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510370077.2A Active CN105138533B (zh) 2015-06-29 2015-06-29 用于访问ssdb服务器的方法和装置

Country Status (1)

Country Link
CN (1) CN105138533B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917510A (zh) * 2005-08-16 2007-02-21 腾讯科技(深圳)有限公司 一种访问通讯录的方法及其通讯录系统
CN101277293A (zh) * 2007-06-25 2008-10-01 广东中大讯通软件科技有限公司 一种实现数字家庭设备间多协议互联互通的适配器及其方法
CN102609541A (zh) * 2012-02-21 2012-07-25 德讯科技股份有限公司 基于mssql数据库的sql信息采集审计系统
CN103034738A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 用于管理异构非结构化数据的关系型数据库及其创建和查询非结构化数据描述信息的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1917510A (zh) * 2005-08-16 2007-02-21 腾讯科技(深圳)有限公司 一种访问通讯录的方法及其通讯录系统
CN101277293A (zh) * 2007-06-25 2008-10-01 广东中大讯通软件科技有限公司 一种实现数字家庭设备间多协议互联互通的适配器及其方法
CN102609541A (zh) * 2012-02-21 2012-07-25 德讯科技股份有限公司 基于mssql数据库的sql信息采集审计系统
CN103034738A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 用于管理异构非结构化数据的关系型数据库及其创建和查询非结构化数据描述信息的方法

Also Published As

Publication number Publication date
CN105138533A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
US9928113B2 (en) Intelligent compiler for parallel graph processing
US10216848B2 (en) Method and system for recommending cloud websites based on terminal access statistics
US8364751B2 (en) Automated client/server operation partitioning
CN108228799B (zh) 对象索引信息的存储方法及装置
CN108090064A (zh) 一种数据查询方法、装置、数据存储服务器及系统
CN111459985A (zh) 标识信息处理方法及装置
US11036699B2 (en) Method for computing distinct values in analytical databases
CN105808633A (zh) 数据归档方法和系统
CN106503008B (zh) 文件存储方法和装置及文件查询方法和装置
CN111198976B (zh) 云上资产关联分析系统、方法、电子设备及介质
CN106326499B (zh) 一种数据处理方法及装置
CN106649602B (zh) 业务对象数据处理方法、装置和服务器
CN107329983A (zh) 一种机器数据分布式存储、读取方法及系统
CN105760395A (zh) 一种数据处理的方法、装置及系统
CN111258978A (zh) 一种数据存储的方法
CN108170815A (zh) 一种数据处理方法、装置及存储介质
CN110807028B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN104239337B (zh) 基于tcam的查表处理方法及装置
CN108365976B (zh) 网络服务的优化方法及装置
CN107239568B (zh) 分布式索引实现方法及装置
CN112527824B (zh) 分页查询方法、装置、电子设备和计算机可读存储介质
CN105138533B (zh) 用于访问ssdb服务器的方法和装置
CN110659295A (zh) 一种基于hawq记录有效数据的方法、装置和介质
CN103220355B (zh) 内容分发网络中的多用户配置方法
CN105653367A (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: 20220726

Address after: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, Binhai New Area, Tianjin

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230713

Address after: 1765, floor 17, floor 15, building 3, No. 10 Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: Beijing Hongxiang Technical Service Co.,Ltd.

Address before: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, Binhai New Area, Tianjin

Patentee before: 3600 Technology Group Co.,Ltd.

TR01 Transfer of patent right