CN107395559A - 基于redis的数据处理方法及设备 - Google Patents
基于redis的数据处理方法及设备 Download PDFInfo
- Publication number
- CN107395559A CN107395559A CN201710389640.XA CN201710389640A CN107395559A CN 107395559 A CN107395559 A CN 107395559A CN 201710389640 A CN201710389640 A CN 201710389640A CN 107395559 A CN107395559 A CN 107395559A
- Authority
- CN
- China
- Prior art keywords
- proxy server
- client
- database
- network connection
- private network
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种基于redis的数据处理方法及设备,该方法包括:接收客户端通过客户端和代理服务器之间的私有网络连接发送的请求消息;生成请求消息对应的第一序列号,并在预设请求列表中存储第一序列号和私有网络连接的对应关系;通过共享网络连接,向redis服务器发送请求消息和第一序列号;接收redis服务器通过共享网络连接发送的、请求消息对应响应消息和第一序列号;若预设请求列表中包括第一序列号,则在预设请求列表中获取第一序列号对应的私有网络连接,并通过私有网络连接向客户端发送响应消息。用于提高redis服务器对数据处理的可靠性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种基于redis的数据处理方法及设备。
背景技术
redis是基于key-value的存储***,由于redis具有较高的读写性能,redis的应用越来越广泛。
目前,为了扩容redis服务器的容量,使得redis服务器可以向更多的客户端提供服务,通常在redis服务器和客户端之间增设代理服务器。为了使得代理服务器和redis服务器之间的网络开销较小,可以在代理服务器和redis服务器之间设置共享网络连接,以使代理服务器可以通过该共享网络连接向redis服务器发送客户端发送的请求消息。但是,在现有技术中,在客户端与代理服务器之间、及代理服务器和redis服务器之间均采用redis序列化协议(Redis Serialization Protocol,简称RESP),该RESP协议也称为redis文本协议,而RESP协议无法区分该请求消息来自于哪一个客户端。在现有技术中,当redis服务器反馈响应消息之后,代理服务器根据接收到请求消息的先后顺序依次向客户端反馈响应消息,当代理服务器和redis服务器之间出现丢包,则代理服务器向客户端反馈响应消息时,则可能向客户端反馈错误的响应消息,导致redis服务器对数据处理的可靠性低。
发明内容
本发明实施例提供一种基于redis的数据处理方法及设备,提高了redis服务器对数据处理的可靠性。
第一方面,本发明实施例提供一种基于redis的数据处理方法,应用于代理服务器,所述代理服务器与redis服务器之间具有共享网络连接,所述方法包括:
接收客户端通过所述客户端和所述代理服务器之间的私有网络连接发送的请求消息;
生成所述请求消息对应的第一序列号,并在预设请求列表中存储所述第一序列号和所述私有网络连接的对应关系;
通过所述共享网络连接,向redis服务器发送所述请求消息和所述第一序列号;
接收所述redis服务器通过所述共享网络连接发送的、所述请求消息对应响应消息和所述第一序列号;
若所述预设请求列表中包括所述第一序列号,则在所述预设请求列表中获取所述第一序列号对应的所述私有网络连接,并通过所述私有网络连接向所述客户端发送所述响应消息。
在一种可能的实施方式中,所述方法还包括:
若所述预设请求列表中不包括所述第一序列号,则丢弃所述响应消息。
在另一种可能的实施方式中,获取第二序列号的生成时刻和当前时刻之间的时间差,所述第二序列号为所述预设请求列表中包括的任意一个序列号;
若所述时间差大于预设等待时长,则在所述预设请求列表中删除所述第二序列号、所述第二序列号对应的网络连接。
在另一种可能的实施方式中,通过所述私有网络连接向所述客户端发送所述响应消息之后,
在所述请求列表中删除所述第一序列号及所述私有网络连接。
在另一种可能的实施方式中,所述方法还包括:
接收所述客户端发送的数据库操作指令;
根据所述客户端和所述代理服务器之间的私有网络连接,获取所述数据库操作指令对应的数据库的标识;
向所述redis服务器发送所述数据库操作指令和所述数据库的标识,以使所述redis服务器根据所述数据库操作指令,对所述数据库进行操作。
在另一种可能的实施方式中,在接收所述客户端发送的数据库操作指令之前,还包括:
接收所述客户端发送的数据库选择指令,所述数据库选择指令中包括数据库的标识;
获取所述客户端和所述代理服务器之间的私有网络连接;
存储所述数据库的标识与所述私有网络连接之间的对应关系。
第二方面,本发明实施例提供一种代理服务器,包括接收模块、生成模块、存储模块、发送模块及第一获取模块,其中,
所述接收模块用于,接收客户端通过所述客户端和所述代理服务器之间的私有网络连接发送的请求消息;
所述生成模块用于,生成所述请求消息对应的第一序列号;
所述存储模块用于,在预设请求列表中存储所述第一序列号和所述私有网络连接的对应关系;
所述发送模块用于,通过所述共享网络连接,向redis服务器发送所述请求消息和所述第一序列号;
所述接收模块还用于,接收所述redis服务器通过所述共享网络连接发送的、所述请求消息对应响应消息和所述第一序列号;
所述第一获取模块用于,在所述预设请求列表中包括所述第一序列号时,在所述预设请求列表中获取所述第一序列号对应的所述私有网络连接;
所述发送模块还用于,通过所述私有网络连接向所述客户端发送所述响应消息。
在一种可能的实施方式中,所述代理服务器还包括丢弃模块,其中,
所述丢弃模块用于,在所述预设请求列表中不包括所述第一序列号时,丢弃所述响应消息。
在另一种可能的实施方式中,所述代理服务器还包括第二获取模块和删除模块,其中,
所述第二获取模块用于,获取第二序列号的生成时刻和当前时刻之间的时间差,所述第二序列号为所述预设请求列表中包括的任意一个序列号;
所述删除模块用于,在所述时间差大于预设等待时长时,在所述预设请求列表中删除所述第二序列号、所述第二序列号对应的网络连接。
在另一种可能的实施方式中,所述删除模块还用于,在所述发送模块通过所述私有网络连接向所述客户端发送所述响应消息之后,在所述请求列表中删除所述第一序列号及所述私有网络连接。
在另一种可能的实施方式中,所述代理服务器还包括第三获取模块,其中,
所述接收模块还用于,接收所述客户端发送的数据库操作指令;
所述第三获取模块用于,根据所述客户端和所述代理服务器之间的私有网络连接,获取所述数据库操作指令对应的数据库的标识;
所述发送模块还用于,向所述redis服务器发送所述数据库操作指令和所述数据库的标识,以使所述redis服务器根据所述数据库操作指令,对所述数据库进行操作。
在另一种可能的实施方式中,所述代理服务器还包括第四获取模块,其中,
所述接收模块还用于,在所述接收模块接收所述客户端发送的数据库操作指令之前,接收所述客户端发送的数据库选择指令,所述数据库选择指令中包括数据库的标识;
所述第四获取模块用于,获取所述客户端和所述代理服务器之间的私有网络连接;
所述存储模块还用于,存储所述数据库的标识与所述私有网络连接之间的对应关系。
本发明实施例提供的基于redis的数据处理方法及设备,当客户端需要向redis服务器请求服务器时,客户端通过客户端和代理服务器之间的私有网络连接向代理服务器发送请求消息,代理服务器为请求消息生成唯一的第一序列号,并记录第一序列号与私有网络连接的对应关系。代理服务器向redis服务器转发请求消息时携带该第一序列号,以使redis服务器反馈的响应消息中也可以携带该第一序列号。这样,代理服务器根据响应消息中携带的第一序列号便可以确定该响应消息对应的私有网络连接,并从该私有网络连接上向对应的客户端发送响应消息,进而使得代理服务器可以将响应消息发送至准确的客户端,进而提高redis服务器对数据处理的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于redis的数据处理方法的应用场景示意图;
图2为本发明实施例提供的基于redis的数据处理方法的流程示意图;
图3为本发明实施例提供的代理服务器的结构示意图一;
图4为本发明实施例提供的代理服务器的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于redis的数据处理方法的应用场景示意图。请参见图1,包括N个客户端(分别记为101-1至101-N)、代理服务器102和redis服务器103。客户端对应的终端设备可以为手机、电脑、电视等设备。当客户端需要向redis服务器请求服务时,客户端可以请求建立客户端与代理服务器102之间的私有网络连接,该私有网络连接上只传输该一个客户端和代理服务器102之间的数据,并通过该私有网络连接向代理服务102发送请求消息。在代理服务器102和redis服务器103之间具有固定的共享网络连接,该固定的共享网络连接可以是一条网络连接,也可以为多条网络连接,该共享网络连接上可以传输来自于任何一个客户端的数据。
在本申请中,当代理服务器接收到客户端向redis服务器发送的请求消息时,代理服务器可以为请求消息生成唯一的序列号,并记录序列号、与客户端与代理服务器之间的网络连接的对应关系。代理服务器向redis服务器转发请求消息时也携带该序列号,以使redis服务器反馈的响应消息中也可以携带该序列号,这样,代理服务器根据响应消息中携带的序列号便可以确定该响应消息对应的网络连接,并从相应的网络连接上向对应的客户端发送响应消息,进而保证响应消息可以发送至准确的客户端。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的概念在不同的实施例中不进行重复说明。
图2为本发明实施例提供的基于redis的数据处理方法的流程示意图。请参见图2,该方法可以包括:
S201、客户端通过私有网络连接向代理服务器发送的请求消息。
其中,该私有网络连接为客户端与代理服务器之间的网络连接。当客户端需要向redis服务器发送请求消息时,客户端先确定redis服务器对应的代理服务器,并建立与代理服务器之间的私有网络连接,并通过该私有网络连接向代理服务器发送请求消息。
S202、代理服务器生成请求消息对应的第一序列号,并在预设请求列表中存储第一序列号和私有网络连接的对应关系。
在代理服务器接收到请求消息之后,代理服务器为该请求消息生成第一序列号,该第一序列号用于唯一标识该请求消息。第一序列号可以通过数据和/或字母等表示。
代理服务器还获取客户端与代理服务器之间的私有网络连接,并将第一序列号和私有网络连接存储在预设请求列表中,该预设请求列表中包括多个序列号及各序列号对应的网络连接。可选的,一个请求消息可以对应唯一的一个序列号,在客户端与代理服务器之间建立网络连接之后,客户端可能通过该网络连接向代理服务器发送多个请求消息,因此,一个网络连接可能对应多个序列号。例如,预设请求列表可以如表1所示:
表1
序列号 | 网络连接的标识 |
001 | 网络连接1 |
002 | 网络连接2 |
003 | 网络连接2 |
004 | 网络连接3 |
…… | …… |
在表1中,序列号“002”和序列号“003”对应的网络连接相同,因此,序列号“002”对应的请求消息和序列号“003”对应的请求消息可能是同一客户端发送的。
需要说明的是,表1只是以示例的形式示意预设请求列表中包括的内容、及内容的存储形式,并不是对预设请求列表中包括的内容、及内容的存储形式的限定。在实际应用过程中,可以根据实际需要设置预设请求列表中包括的内容,本发明实施例对此不作具体限定。
在实际应用过程中,代理服务器还可以实时对预设请求列表进行维护。可选的,在代理服务器生成序列号时,代理服务器可以记录序列号的生成时刻,可选的,代理服务器可以将序列号的生成时刻记录在预设请求列表中。例如,预设请求列表还可以如表2所示:
表2
序列号 | 网络连接的标识 | 生成时刻 |
001 | 网络连接1 | 1:30:10 |
002 | 网络连接2 | 1:30:12 |
003 | 网络连接3 | 1:30:13 |
004 | 网络连接4 | 1:30:15 |
…… | …… | …… |
针对预设请求列表中的任意一个第二序列号,代理服务器可以获取第二序列号的生成时刻和当前时刻之间的时间差,第二序列号为预设请求列表中包括的任意一个序列号,若时间差大于预设等待时长,则在预设请求列表中删除第二序列号、第二序列号对应的网络连接。
可选的,预设等待时长为预设的请求消息的最大响应时长,当一个请求消息在预设等待时长内未得到响应时,则代理服务器向客户端反馈一个响应失败消息,以提示用户无需继续等待。例如,预设等待时长可以为50秒、60秒等,在实际应用过程中,可以根据实际需要设置该预设等待时长。
S203、代理服务器通过共享网络连接,向redis服务器发送请求消息和第一序列号。
在代理服务器为请求消息生成第一序列号之后,代理服务器向redis服务器发送请求消息及该第一序列号,以使redis服务器对请求消息进行处理。
可选的,本发明实施例中的请求消息为RESP协议的请求消息,当代理服务器需要向redis服务器发送请求消息和第一序列号时,代理服务器可以在现有的RESP协议的请求消息中添加头部信息,并在头部信息中携带该第一序列号。例如,携带第一序列号的请求信息的格式可以如表3所示:
表3
头部信息 | 正文信息 |
第一序列号 | RESP协议的请求消息 |
需要说明的是,在头部信息中还可以携带其它信息,例如请求消息的长度等。
S204、redis服务器对请求消息进行处理,得到请求消息对应的响应消息。
S205、redis服务器通过共享网络连接向代理服务器发送响应消息和第一序列号。
在redis服务器对请求消息进行处理得到响应消息之后,redis服务器向代理服务器发送响应消息及第一序列号。
可选的,本发明实施例中的响应消息为RESP协议的响应消息,当redis服务器需要向代理服务器发送响应消息和第一序列号时,redis服务器可以在现有的RESP协议的响应消息中添加头部信息,并在头部信息中携带该第一序列号。例如,携带第一序列号的响应信息的格式可以如表4所示:
表4
头部信息 | 正文信息 |
第一序列号 | RESP协议的响应消息 |
S206、代理服务器判断预设请求列表中是否包括第一序列号。
若是,则执行S207-S209。
若否,则执行S210。
S207、代理服务器在预设请求列表中获取第一序列号对应的私有网络连接;
S208、代理服务器通过私有网络连接向客户端发送响应消息。
S209、代理服务器在请求列表中删除第一序列号及私有网络连接。
S210、代理服务器丢弃该响应消息。
若预设请求列表中不包括第一序列号,则说明该响应消息的响应时长大于了预设等待时长,则代理服务器可以直接丢弃该响应消息。
下面,通过具体示例,对图2实施例所示的方法进行详细说明。
示例性的,当客户端1需要向redis服务器请求服务时,客户端1确定redis服务器对应的代理服务器。客户端1请求建立与代理服务器之间的网络连接1,该网络连接1为客户端1与代理服务器之间的私有网络连接,在该网络连接1中只能传输客户端1和代理服务器之间的数据。客户端1通过网络连接1向代理服务器发送请求消息1。其中,请求消息1位RESP协议的请求消息。
假设当前时刻为1:10:50,代理服务器为接收到的请求消息1生成序列号“005”,并记录生成该序列号“005”的时刻1:10:50。再假设预设等待时长为40秒,则在预设请求列表中包括生成时刻在1:10:10-1:10:50之间的序列号、及各序列号对应的网络连接。在对序列号“005”、网络连接1、及生成时刻进行存储之后,预设请求列表可以如表5所示:
表5
序列号 | 网络连接的标识 | 生成时刻 |
001 | 网络连接3 | 1:10:10 |
002 | 网络连接2 | 1:10:20 |
003 | 网络连接3 | 1:10:25 |
004 | 网络连接4 | 1:10:35 |
005 | 网络连接1 | 1:10:50 |
代理服务器根据序列号“005”和请求消息1生成表6所示的请求消息2,并向redis服务器发送表6所示的请求消息2。
表6
头部信息 | 正文信息 |
005 | 请求消息1 |
redis服务器接收到请求消息2之后,在请求消息2中获取正文信息请求消息1,并对请求消息1进行处理,得到响应消息1。redis服务器根据序列号“005”和响应消息1生成表7所示的响应消息2,并向代理服务器发送该响应消息2。
表7
头部信息 | 正文信息 |
005 | 响应消息1 |
假设代理服务器在1:11:10接收到响应消息2,由于预设等待时长为40秒,因此,在代理服务器中的预设请求列表中包括序列号“005”、及“005”对应的网络连接。
代理服务器在预设请求列表中获取序列号“005”对应的网络连接1,并通过网络连接1发送响应消息1。由于网络连接1对应的客户端为客户端1,因此,代理服务器可以准确的将响应消息1发送至客户端1。
本发明实施例提供的基于redis的数据处理方法,当客户端需要向redis服务器请求服务器时,客户端通过客户端和代理服务器之间的私有网络连接向代理服务器发送请求消息,代理服务器为请求消息生成唯一的第一序列号,并记录第一序列号与私有网络连接的对应关系。代理服务器向redis服务器转发请求消息时携带该第一序列号,以使redis服务器反馈的响应消息中也可以携带该第一序列号。这样,代理服务器根据响应消息中携带的第一序列号便可以确定该响应消息对应的私有网络连接,并从该私有网络连接上向对应的客户端发送响应消息,进而使得代理服务器可以将响应消息发送至准确的客户端,进而提高redis服务器对数据处理的可靠性。
在上述任意一个实施例的基础上,在增加代理服务器之前,每一个客户端和redis服务器之间具有专属网络连接,客户端和redis服务器之间发送的数据均在其对应的专属网络连接上进行传输。相应的,在增加代理服务器之前,当客户端需要请求redis服务器对一个数据库进行操作时,用户可以在客户端选择一个数据库,在此之后,客户端在请求redis服务器对数据库进行操作时,便不再携带数据库的标识,相应的,只要redis服务器在该专属网络连接上接收到的数据库请求操作,redis服务器均对用户之前选择的数据库进行操作。
例如,在增加代理服务器之前,假设客户端1和redis服务器之间具有专属网络连接1。当用户需要对数据库1(db1)进行操作时,用户在客户端输入select db1,用于指示redis服务器对db1进行操作。在此之后,客户端1向redis服务器发送的数据库操作请求中可能不携带数据库1的标识,在redis服务器在专属网络连接1上接收到客户端1发送的数据操作请求之后,redis服务器则对db1进行操作,直至用户在客户端1重新选择了其它数据库。
在增加代理服务器之后,由于代理服务器和redis服务器之间为共享网络连接,在客户端选择过数据库之后,在代理服务器转发客户端向redis服务器发送的其它数据库操作指令时,由于redis服务器无法确定该数据库操作指令来自于哪一个客户端,使得redis服务器也无法确定数据库操作指令需要操作的数据库是哪一个,因此,在redis服务器接收到数据库操作指令之后,无法准确的对相应的数据库进行操作。
在本申请中,在代理服务器接收到客户端发送的数据库选择指令之后,代理服务器在数据库选择指令中获取数据库的标识,代理服务器还获取客户端和代理服务器之间的私有网络连接,并存储数据库的标识和私有网络连接的对应关系。可选的,数据库的标识和网络连接的对应关系可以如表8所示:
表8
数据库的标识 | 网络连接的标识 |
db1 | 网络连接1 |
db2 | 网络连接2 |
db3 | 网络连接3 |
db4 | 网络连接4 |
…… | …… |
相应的,在代理服务器接收到客户端发送的数据库操作指令之后,代理服务器获取客户端和代理服务器之间的私有网络连接,并获取私有网络连接对应的数据库的标识。代理服务器向redis服务器发送数据库操作指令和数据库的标识,以使redis服务器可以根据数据库操作指令,对数据库进行操作。这样,可以保证redis服务器对正确的数据库进行操作。
可选的,本发明实施例中的数据库操作指令为RESP协议的指令,当代理器向redis服务器发送数据库操作指令和数据库的标识时,可以将在现有的RESP协议的数据库操作指令中添加头部信息,并在头部信息中携带数据库的标识。例如,携带数据库的标识的数据库操作指令的格式可以如表9所示:
表9
头部信息 | 正文信息 |
数据库的标识 | 数据库操作指令 |
在上述任意一个实施例的基础上,在代理服务器向redis服务器(主redis服务器)转发客户端发送的消息时,还可以在消息的头部信息中携带消息的大小。这样,在主redis服务器执行完客户端发送的消息之后,主redis服务器将消息写入binlog文件中,在主redis服务器的异步线程发现binlog文件中写入新的消息时,可以根据该消息的头部信息获取该消息的大小,并根据该消息的大小获取该消息的内容,并向备份redis服务器发送获取得到的消息内容。在该过程中,由于主redis服务器可以根据消息的大小获取一个完整的消息,无需对binlog文件中的数据进行解析以获取一个完成的消息,进而提高主redis进行备份的效率。
图3为本发明实施例提供的代理服务器的结构示意图一。请参见图3,该代理服务器可以包括接收模块11、生成模块12、存储模块13、发送模块14及第一获取模块15,其中,
所述接收模块11用于,接收客户端通过所述客户端和所述代理服务器之间的私有网络连接发送的请求消息;
所述生成模块12用于,生成所述请求消息对应的第一序列号;
所述存储模块13用于,在预设请求列表中存储所述第一序列号和所述私有网络连接的对应关系;
所述发送模块14用于,通过所述共享网络连接,向redis服务器发送所述请求消息和所述第一序列号;
所述接收模块11还用于,接收所述redis服务器通过所述共享网络连接发送的、所述请求消息对应响应消息和所述第一序列号;
所述第一获取模块15用于,在所述预设请求列表中包括所述第一序列号时,在所述预设请求列表中获取所述第一序列号对应的所述私有网络连接;
所述发送模块14还用于,通过所述私有网络连接向所述客户端发送所述响应消息。
本发明实施例提供的代理服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图4为本发明实施例提供的代理服务器的结构示意图二。在图3所示实施例的基础上,请参见图4,所述代理服务器还包括丢弃模16,其中,
所述丢弃模块16用于,在所述预设请求列表中不包括所述第一序列号时,丢弃所述响应消息。
在一种可能的实施方式中,所述代理服务器还包括第二获取模块17和删除模块18,其中,
所述第二获取模块17用于,获取第二序列号的生成时刻和当前时刻之间的时间差,所述第二序列号为所述预设请求列表中包括的任意一个序列号;
所述删除模块18用于,在所述时间差大于预设等待时长时,在所述预设请求列表中删除所述第二序列号、所述第二序列号对应的网络连接。
在另一种可能的实施方式中,所述删除模块18还用于,在所述发送模块14通过所述私有网络连接向所述客户端发送所述响应消息之后,在所述请求列表中删除所述第一序列号及所述私有网络连接。
在另一种可能的实施方式中,所述代理服务器还包括第三获取模块19,其中,
所述接收模块11还用于,接收所述客户端发送的数据库操作指令;
所述第三获取模块19用于,根据所述客户端和所述代理服务器之间的私有网络连接,获取所述数据库操作指令对应的数据库的标识;
所述发送模块14还用于,向所述redis服务器发送所述数据库操作指令和所述数据库的标识,以使所述redis服务器根据所述数据库操作指令,对所述数据库进行操作。
在另一种可能的实施方式中,所述代理服务器还包括第四获取模块110,其中,
所述接收模块11还用于,在所述接收模块11接收所述客户端发送的数据库操作指令之前,接收所述客户端发送的数据库选择指令,所述数据库选择指令中包括数据库的标识;
所述第四获取模块110用于,获取所述客户端和所述代理服务器之间的私有网络连接;
所述存储模块13还用于,存储所述数据库的标识与所述私有网络连接之间的对应关系。
本发明实施例提供的代理服务器可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。
Claims (12)
1.一种基于redis的数据处理方法,其特征在于,应用于代理服务器,所述代理服务器与redis服务器之间具有共享网络连接,所述方法包括:
接收客户端通过所述客户端和所述代理服务器之间的私有网络连接发送的请求消息;
生成所述请求消息对应的第一序列号,并在预设请求列表中存储所述第一序列号和所述私有网络连接的对应关系;
通过所述共享网络连接,向redis服务器发送所述请求消息和所述第一序列号;
接收所述redis服务器通过所述共享网络连接发送的、所述请求消息对应响应消息和所述第一序列号;
若所述预设请求列表中包括所述第一序列号,则在所述预设请求列表中获取所述第一序列号对应的所述私有网络连接,并通过所述私有网络连接向所述客户端发送所述响应消息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述预设请求列表中不包括所述第一序列号,则丢弃所述响应消息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取第二序列号的生成时刻和当前时刻之间的时间差,所述第二序列号为所述预设请求列表中包括的任意一个序列号;
若所述时间差大于预设等待时长,则在所述预设请求列表中删除所述第二序列号、所述第二序列号对应的网络连接。
4.根据权利要求1-3任一项所述的方法,其特征在于,通过所述私有网络连接向所述客户端发送所述响应消息之后,
在所述请求列表中删除所述第一序列号及所述私有网络连接。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的数据库操作指令;
根据所述客户端和所述代理服务器之间的私有网络连接,获取所述数据库操作指令对应的数据库的标识;
向所述redis服务器发送所述数据库操作指令和所述数据库的标识,以使所述redis服务器根据所述数据库操作指令,对所述数据库进行操作。
6.根据权利要求5所述的方法,其特征在于,在接收所述客户端发送的数据库操作指令之前,还包括:
接收所述客户端发送的数据库选择指令,所述数据库选择指令中包括数据库的标识;
获取所述客户端和所述代理服务器之间的私有网络连接;
存储所述数据库的标识与所述私有网络连接之间的对应关系。
7.一种代理服务器,其特征在于,包括接收模块、生成模块、存储模块、发送模块及第一获取模块,其中,
所述接收模块用于,接收客户端通过所述客户端和所述代理服务器之间的私有网络连接发送的请求消息;
所述生成模块用于,生成所述请求消息对应的第一序列号;
所述存储模块用于,在预设请求列表中存储所述第一序列号和所述私有网络连接的对应关系;
所述发送模块用于,通过所述共享网络连接,向redis服务器发送所述请求消息和所述第一序列号;
所述接收模块还用于,接收所述redis服务器通过所述共享网络连接发送的、所述请求消息对应响应消息和所述第一序列号;
所述第一获取模块用于,在所述预设请求列表中包括所述第一序列号时,在所述预设请求列表中获取所述第一序列号对应的所述私有网络连接;
所述发送模块还用于,通过所述私有网络连接向所述客户端发送所述响应消息。
8.根据权利要求7所述的代理服务器,其特征在于,所述代理服务器还包括丢弃模块,其中,
所述丢弃模块用于,在所述预设请求列表中不包括所述第一序列号时,丢弃所述响应消息。
9.根据权利要求7所述的代理服务器,其特征在于,所述代理服务器还包括第二获取模块和删除模块,其中,
所述第二获取模块用于,获取第二序列号的生成时刻和当前时刻之间的时间差,所述第二序列号为所述预设请求列表中包括的任意一个序列号;
所述删除模块用于,在所述时间差大于预设等待时长时,在所述预设请求列表中删除所述第二序列号、所述第二序列号对应的网络连接。
10.根据权利要求9所述的代理服务器,其特征在于,
所述删除模块还用于,在所述发送模块通过所述私有网络连接向所述客户端发送所述响应消息之后,在所述请求列表中删除所述第一序列号及所述私有网络连接。
11.根据权利要求7-9任一项所述的代理服务器,其特征在于,所述代理服务器还包括第三获取模块,其中,
所述接收模块还用于,接收所述客户端发送的数据库操作指令;
所述第三获取模块用于,根据所述客户端和所述代理服务器之间的私有网络连接,获取所述数据库操作指令对应的数据库的标识;
所述发送模块还用于,向所述redis服务器发送所述数据库操作指令和所述数据库的标识,以使所述redis服务器根据所述数据库操作指令,对所述数据库进行操作。
12.根据权利要求11所述的代理服务器,其特征在于,所述代理服务器还包括第四获取模块,其中,
所述接收模块还用于,在所述接收模块接收所述客户端发送的数据库操作指令之前,接收所述客户端发送的数据库选择指令,所述数据库选择指令中包括数据库的标识;
所述第四获取模块用于,获取所述客户端和所述代理服务器之间的私有网络连接;
所述存储模块还用于,存储所述数据库的标识与所述私有网络连接之间的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710389640.XA CN107395559B (zh) | 2017-05-27 | 2017-05-27 | 基于redis的数据处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710389640.XA CN107395559B (zh) | 2017-05-27 | 2017-05-27 | 基于redis的数据处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107395559A true CN107395559A (zh) | 2017-11-24 |
CN107395559B CN107395559B (zh) | 2020-05-19 |
Family
ID=60338437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710389640.XA Active CN107395559B (zh) | 2017-05-27 | 2017-05-27 | 基于redis的数据处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107395559B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683697A (zh) * | 2018-03-28 | 2018-10-19 | 青岛海尔科技有限公司 | 连接Redis内存数据库的方法、***、选择器和服务器 |
CN109347936A (zh) * | 2018-09-30 | 2019-02-15 | 江苏满运软件科技有限公司 | Redis代理客户端的实现方法、***、存储介质及电子设备 |
CN110928937A (zh) * | 2019-10-28 | 2020-03-27 | 东南大学 | 一种可快速处理和传输数据的高速公路门架*** |
CN111435942A (zh) * | 2019-01-14 | 2020-07-21 | 北京京东尚科信息技术有限公司 | redis集群访问方法、***、中间件、介质及设备 |
CN113076362A (zh) * | 2021-03-17 | 2021-07-06 | 北京达佳互联信息技术有限公司 | 业务执行方法及装置 |
CN117440028A (zh) * | 2023-12-07 | 2024-01-23 | 四川湖山电器股份有限公司 | 基于tcp的上位设备和嵌入设备交互的通信方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130267285A1 (en) * | 2012-04-04 | 2013-10-10 | Timothy J. Kelley | System and method for on-line academic competition |
CN103391289A (zh) * | 2013-07-16 | 2013-11-13 | 中船重工(武汉)凌久高科有限公司 | 一种基于完成端口模型的多链路安全通信方法 |
CN104881808A (zh) * | 2015-06-30 | 2015-09-02 | 北京奇虎科技有限公司 | 实时获取竞拍数据的方法、服务器及*** |
CN104980307A (zh) * | 2015-06-29 | 2015-10-14 | 小米科技有限责任公司 | 数据访问请求的处理方法、装置及数据库服务器 |
CN105468718A (zh) * | 2015-11-18 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 数据一致性处理方法、装置和*** |
-
2017
- 2017-05-27 CN CN201710389640.XA patent/CN107395559B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130267285A1 (en) * | 2012-04-04 | 2013-10-10 | Timothy J. Kelley | System and method for on-line academic competition |
CN103391289A (zh) * | 2013-07-16 | 2013-11-13 | 中船重工(武汉)凌久高科有限公司 | 一种基于完成端口模型的多链路安全通信方法 |
CN104980307A (zh) * | 2015-06-29 | 2015-10-14 | 小米科技有限责任公司 | 数据访问请求的处理方法、装置及数据库服务器 |
CN104881808A (zh) * | 2015-06-30 | 2015-09-02 | 北京奇虎科技有限公司 | 实时获取竞拍数据的方法、服务器及*** |
CN105468718A (zh) * | 2015-11-18 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 数据一致性处理方法、装置和*** |
Non-Patent Citations (1)
Title |
---|
邱书洋: "Redis缓存技术研究及应用", 《中国优秀硕士论文全文数据库》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683697A (zh) * | 2018-03-28 | 2018-10-19 | 青岛海尔科技有限公司 | 连接Redis内存数据库的方法、***、选择器和服务器 |
CN109347936A (zh) * | 2018-09-30 | 2019-02-15 | 江苏满运软件科技有限公司 | Redis代理客户端的实现方法、***、存储介质及电子设备 |
CN111435942A (zh) * | 2019-01-14 | 2020-07-21 | 北京京东尚科信息技术有限公司 | redis集群访问方法、***、中间件、介质及设备 |
CN111435942B (zh) * | 2019-01-14 | 2023-04-18 | 北京京东尚科信息技术有限公司 | redis集群访问方法、***、中间件、介质及设备 |
CN110928937A (zh) * | 2019-10-28 | 2020-03-27 | 东南大学 | 一种可快速处理和传输数据的高速公路门架*** |
CN113076362A (zh) * | 2021-03-17 | 2021-07-06 | 北京达佳互联信息技术有限公司 | 业务执行方法及装置 |
CN113076362B (zh) * | 2021-03-17 | 2024-02-23 | 北京达佳互联信息技术有限公司 | 业务执行方法及装置 |
CN117440028A (zh) * | 2023-12-07 | 2024-01-23 | 四川湖山电器股份有限公司 | 基于tcp的上位设备和嵌入设备交互的通信方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN107395559B (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107395559A (zh) | 基于redis的数据处理方法及设备 | |
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN109413096B (zh) | 一种多应用的登录方法及装置 | |
CN104144098B (zh) | 消息推送方法、***及推送服务器设备 | |
CN108462704A (zh) | 登录验证方法、装置、计算机设备及存储介质 | |
US8103245B2 (en) | Systems and methods for session records correlation | |
CN108123866B (zh) | 消息传输方法及装置 | |
WO2020253102A1 (zh) | 线上背书签名方法、装置、设备和存储介质 | |
CN102143131B (zh) | 用户注销方法及认证服务器 | |
CN106789876A (zh) | 一种云终端服务器的认证方法及其装置 | |
CN108337163B (zh) | 用于汇聚链路的方法和装置 | |
CN107547346A (zh) | 一种报文传输方法和装置 | |
CN106453349A (zh) | 账号登录方法及装置 | |
CN109981795A (zh) | 资源请求调度方法和装置 | |
CN109729139A (zh) | 访问请求转发方法、装置、设备及可读存储介质 | |
CN114500633B (zh) | 数据转发方法、相关装置、程序产品及数据传输*** | |
CN100477582C (zh) | 一种即时通信中即时处理多媒体信息的方法和*** | |
CN105450513B (zh) | 归档邮件附件的方法和云存储服务器 | |
CN108768849A (zh) | 报文处理方法及装置 | |
CN109710502A (zh) | 日志传输方法、装置及存储介质 | |
CN103220374B (zh) | 一种客户端接入网络的方法、装置 | |
CN106657135A (zh) | 一种基于安全套接层协议认证的文件传输方法及设备 | |
CN108040000B (zh) | 一种信息传送方法及设备 | |
CN114172958B (zh) | 隐私计算节点、***、方法、装置以及存储介质 | |
CN104639585B (zh) | 一种实时数据传输***及其数据同步方法 |
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 |