[发明专利]一种基于键值对的数据处理方法及系统有效
| 申请号: | 201510765510.2 | 申请日: | 2015-11-11 |
| 公开(公告)号: | CN105426451A | 公开(公告)日: | 2016-03-23 |
| 发明(设计)人: | 范丛明;黄超;冯骏 | 申请(专利权)人: | 深圳市华讯方舟科技有限公司;深圳市华讯方舟软件信息有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 深圳中一专利商标事务所 44237 | 代理人: | 张全文 |
| 地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 键值 数据处理 方法 系统 | ||
技术领域
本发明属于数据存储技术领域,尤其涉及一种基于键值对的数据处理方法及系统。
背景技术
开源数据库Redis是一个高性能的键值对数据库,也称非关系型数据库,它支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器,这使得Redis可执行单层树复制。开源数据库Redis的出现,很大程度补偿了关系型数据库存储的不足,在部分场合可以对关系型数据库起到很好的补充作用。随着互联网web2.0网站的兴起,开源数据库Redis已经成了一个极其热门的新领域,非关系型数据库产品的发展也非常迅速。但是,目前开源数据库Redis的数据处理方式一般为单进程处理,当接收到客户端发送的操作命令时,服务器端只能通过队列的方式处理客户端发送的操作命令,无法利用处理器的多核优势进行并发处理,而单核处理能力有限,因此使得开源数据库Redis的数据处理性能较低。此外,目前在部署数据库时,由于单个数据库实例性能瓶颈的问题,一般需要部署多个数据库实例才能达到业务性能需求,这样就需要投入大量的时间和人力对数据库进行监控和运维,增加了数据库管理的负担。
发明内容
本发明实施例的目的在于提供一种基于键值对的数据处理方法及系统,旨在解决上述开源数据库Redis的数据处理性能较低,并且需要投入大量的时间和人力对数据库进行监控和运维,增加了数据库管理的负担的问题。
本发明实施例是这样实现的,一种基于键值对的数据处理方法,包括:
服务器集群中的任一节点接收客户端发送的数据库键命令;
所述节点计算所述数据库键命令中携带的key值所对应的哈希槽,并判断所述哈希槽是否由自己负责;
若是,则所述节点执行所述数据库键命令;
若否,则所述节点向所述客户端返回moved错误的提示信息,使所述客户端根据所述提示信息转向所述服务器集群中正确的节点。
在本发明实施例所述的基于键值对的数据处理方法中,在服务器集群中的任一节点接收客户端发送的数据库键命令之前还包括:
将所述服务器集群中的多个哈希槽分别指派给所述服务器集群中的各个节点,并将所述多个哈希槽的指派信息存储至所述服务器集群中的每个节点。
在本发明实施例所述的基于键值对的数据处理方法中,所述提示信息包括所述key值所对应的哈希槽被指派的节点名称。
在本发明实施例所述的基于键值对的数据处理方法中,所述节点计算所述数据库键命令中携带的key值所对应的哈希槽具体包括:
所述节点采用集群使用公式CRC16(key)%16384来计算key值所对应的哈希槽,其中,CRC16(key)语句用于计算key值的CRC16校验和。
在本发明实施例所述的基于键值对的数据处理方法中,所述数据库键命令包括get命令、set命令、del命令和hget命令。
本发明实施例的另一目的在于提供一种基于键值对的数据处理系统,包括位于服务器集群中节点内部的接收模块、计算模块、判断模块、执行模块以及提示模块,所述接收模块、所述计算模块、所述判断模块以及所述执行模块依次连接,所述判断模块还与所述提示模块连接,其中:
所述接收模块,用于接收客户端发送的数据库键命令;
所述计算模块,用于计算所述数据库键命令中携带的key值所对应的哈希槽;
所述判断模块,用于判断所述哈希槽是否由所述节点负责;
所述执行模块,用于若是由所述节点负责,则执行所述数据库键命令;
所述提示模块,用于若不是由所述节点负责,则向所述客户端返回moved错误的提示信息,使所述客户端根据所述提示信息转向所述服务器集群中正确的节点。
在本发明实施例所述的基于键值对的数据处理系统中,还包括与所述服务器集群中的节点相连的分配模块和位于所述节点内部与所述分配模块和所述判断模块连接的存储模块,其中:
所述分配模块,用于将所述服务器集群中的多个哈希槽分别指派给所述服务器集群中的各个节点;
所述存储模块,用于存储所述多个哈希槽的指派信息。
在本发明实施例所述的基于键值对的数据处理系统中,所述提示信息包括所述key值所对应的哈希槽被指派的节点名称。
在本发明实施例所述的基于键值对的数据处理系统中,所述计算模块具体用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市华讯方舟科技有限公司;深圳市华讯方舟软件信息有限公司,未经深圳市华讯方舟科技有限公司;深圳市华讯方舟软件信息有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510765510.2/2.html,转载请声明来源钻瓜专利网。





