[发明专利]基于Redis的数据处理方法、装置以及服务端设备有效
| 申请号: | 202011045337.6 | 申请日: | 2020-09-28 |
| 公开(公告)号: | CN112202766B | 公开(公告)日: | 2023-03-14 |
| 发明(设计)人: | 王贺;胡伟哲 | 申请(专利权)人: | 北京金山云网络技术有限公司 |
| 主分类号: | H04L69/22 | 分类号: | H04L69/22;H04L67/60 |
| 代理公司: | 北京超凡宏宇专利代理事务所(特殊普通合伙) 11463 | 代理人: | 张萌 |
| 地址: | 100000 北京市海淀*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 redis 数据处理 方法 装置 以及 服务端 设备 | ||
1.一种基于Redis的数据处理方法,其特征在于,所述方法包括:
获取来自客户端的针对所述Redis的网络包的请求;
基于所述网络包的请求对所述网络包进行解析,得到执行命令;
将所述执行命令发送至工作线程,以使所述工作线程处理所述执行命令,得到处理结果;
基于所述处理结果向所述客户端返回所述请求的响应结果;
所述获取来自客户端的针对所述Redis的网络包的请求的步骤之前,还包括:
接收所述客户端和IO线程之间的网络连接数据,以基于所述网络连接数据获取来自所述客户端的网络包的请求;
所述接收所述客户端和IO线程之间的网络连接数据,以基于所述网络连接数据获取来自所述客户端的网络包的请求的步骤,包括:
接收分发线程发送的所述客户端和IO线程之间的网络连接数据,以基于所述网络连接数据获取来自所述客户端的网络包的请求;所述分发线程用于接收与至少一个所述客户端的网络连接数据,并将多个所述网络连接数据分发到至少一个所述IO线程,以使至少一个所述IO线程分别基于所述网络连接数据获取来自所述客户端的网络包的请求。
2.根据权利要求1所述的方法,其特征在于,所述基于所述网络包的请求对所述网络包进行解析,得到执行命令的步骤,包括:
对于获取到的多个所述网络包的请求,按照所述网络包的请求在本地epoll的触发顺序,对多个所述网络包的请求中的网络包进行解析,得到执行命令。
3.一种基于Redis的数据处理方法,其特征在于,所述方法包括:
获取执行命令;所述执行命令是IO线程基于来自客户端的针对所述Redis的网络包的请求进行解析,所得到的执行命令;
对所述执行命令进行处理,得到处理结果,以使所述IO线程基于所述处理结果,向所述客户端返回所述请求的响应结果;
所述对所述执行命令进行处理,得到处理结果的步骤,包括:
对于多个所述执行命令,按照所述执行命令在本地epoll的触发顺序,对多个所述执行命令进行处理,得到处理结果;
所述对于多个所述执行命令,按照所述执行命令在本地epoll的触发顺序,对多个所述执行命令进行处理,得到处理结果的步骤,包括:
对于多个所述执行命令,按照所述执行命令在本地epoll的触发顺序,从第一队列中取出所述执行命令,并对所述执行命令进行处理,得到处理结果,所述处理结果放置于第二队列中;
所述第一队列用于放置所述执行命令;所述第二队列用于放置所述处理结果,以使所述IO线程从所述第二队列中获取所述处理结果。
4.根据权利要求3所述的方法,其特征在于,还包括:
在本地发生线程阻塞时,将发生线程阻塞后接收到的目标执行命令返还至所述IO线程,以使所述目标执行命令放置于所述IO线程中的第三队列中;
向所述IO线程通知阻塞状态下的目标客户端,以使所述IO线程停止对来自所述目标客户端的网络包的解析。
5.根据权利要求4所述的方法,其特征在于,还包括:
在本地的线程阻塞结束时,向所述IO线程通知解除所述目标客户端的阻塞状态,以使所述IO线程将所述第三队列中的所述目标执行命令发送至本地,并继续对来自所述目标客户端的网络包进行解析。
6.根据权利要求3所述的方法,其特征在于,还包括:
将所述Redis的主从同步任务发送至所述IO线程,以使所述IO线程执行所述主从同步任务。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司,未经北京金山云网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011045337.6/1.html,转载请声明来源钻瓜专利网。





