CN110347718A - 一种redis分片方法、装置、计算机设备和存储介质 - Google Patents
一种redis分片方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110347718A CN110347718A CN201910470437.4A CN201910470437A CN110347718A CN 110347718 A CN110347718 A CN 110347718A CN 201910470437 A CN201910470437 A CN 201910470437A CN 110347718 A CN110347718 A CN 110347718A
- Authority
- CN
- China
- Prior art keywords
- redis
- agency
- agreement
- service
- result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 230000009191 jumping Effects 0.000 claims abstract description 7
- 239000000203 mixture Substances 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 239000012141 concentrate Substances 0.000 abstract description 2
- 238000013500 data storage Methods 0.000 abstract description 2
- 239000003795 chemical substances by application Substances 0.000 description 12
- 239000012634 fragment Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000000151 deposition Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种REDIS分片方法、装置、计算机设备和存储介质,所述方法包括:接收发送的参数值,并对所述参数值进行校验,获得唯一码;发送操作请求给REDIS协议代理;所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;接收所述REDIS协议代理发送的返回结果。上述方法可以改善数据存储的均衡,数据更集中规范,提高了大集群下数据的查询速度。
Description
技术领域
本发明涉及分片技术领域,特别是涉及一种REDIS分片方法、装置、计算机设备和存储介质。
背景技术
Redis集群提供一种方式自动将数据分布在多个Redis节点上,Redis集群的每个数据库都存储集群中的所有数据,那么集群的总数据存储量受限于可用存储内存最小的数据库节点,由此而形成木桶效应。
目前,在进行数据处理时,通常采用Redis分片,就是将数据拆分到多个Redis实例的过程,这样每个实例将只包含所有键的子集。然而,在对现有技术的研究与实践中,本发明的发明人发现,现有技术存在以下问题:现有的分片技术不支持多键的操作。涉及多个键的事务不能使用,分片粒度是键,大数据块的数据处理变得更复杂,需要拆分后存储,操作数据也变的复杂。
发明内容
基于此,有必要针对在进行REDIS分片时,现有的技术不支持多键的操作。涉及多个键的事务不能使用,大数据块的处理变得更复杂,需要拆分后存储,操作数据也变得复杂的问题,提供一种REDIS分片方法、装置、计算机设备和存储介质。
一种REDIS分片方法,所述REDIS分片方法包括:接收发送的参数值,并对所述参数值进行校验,获得唯一码;发送操作请求给REDIS协议代理;所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;接收所述REDIS协议代理发送的返回结果。
在其中一个实施例中,所述方法还包括:所述接收发送的参数值,并对所述参数值进行校验,获得唯一码包括:根据所述参数值判断业务类型;根据所述业务类型获得代理服务的编码;根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;对转入参数的键值进行哈希算法计算,生成哈希值;将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
在其中一个实施例中,所述发送操作请求给REDIS协议代理包括:根据配置的连接池,建立与所述REDIS协议代理之间的连接地址;通过所述连接地址发送所述操作请求。
在其中一个实施例中,所述REDIS协议代理根据预设配置参数对所述唯一码进行解析包括:依次获得操作方式和所述唯一码;根据所述预设配置参数截取业务类型,循环解析所述唯一码的组成。
在其中一个实施例中,所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问包括:判断所述唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
在其中一个实施例中,所述方法还包括:所述唯一码由所述REDIS协议代理配置、路由点服务实例和哈希值组成。
在其中一个实施例中,所述接收所述REDIS协议代理发送的返回结果包括:所述REDIS协议代理记录操作结果,并获得所有的操作结果;当所述操作结果全部满足预设要求时,将所述返回结果进行发送;当所述操作结果中任一项不满足所述预设要求时,返回失败结果。
一种REDIS分片装置,所述装置包括:唯一码获得单元,用于接收发送的参数值,并对所述参数值进行校验,获得唯一码;操作请求发送单元,用于发送操作请求给REDIS协议代理;唯一码解析单元,用于所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;REDIS服务跳转单元,用于根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;REDIS服务访问单元,用于所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;访问结果返回单元,用于REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;接收单元,用于接收所述REDIS协议代理发送的返回结果。
在其中一个实施例中,所述唯一码获得单元包括:业务类型判断模块,用于根据所述参数值判断业务类型;代理服务编码获得模块,用于根据所述业务类型获得代理服务的编码;REDIS实例值获得模块,用于根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;哈希值生成模块,用于对转入参数的键值进行哈希算法计算,生成哈希值;唯一码拼装模块,用于将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
在其中一个实施例中,所述操作请求发送单元包括:连接地址建立模块,用于根据配置的连接池,建立与所述REDIS协议代理之间的连接地址;操作请求执行模块,用于通过所述连接地址发送所述操作请求。
在其中一个实施例中,所述唯一码解析单元包括:信息获取模块,用于依次获得操作方式和所述唯一码;循环解析模块,用于根据所述预设配置参数截取业务类型,循环解析所述唯一码的组成。
在其中一个实施例中,所述REDIS服务访问单元包括:参数判断模块,用于判断所述唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
在其中一个实施例中,所述唯一码获得单元获得的所述唯一码由所述REDIS协议代理配置、路由点服务实例和哈希值组成。
在其中一个实施例中,所述接收单元包括:操作结果获得模块,用于所述REDIS协议代理记录操作结果,并获得所有的操作结果;第一执行模块,用于当所述操作结果全部满足预设要求时,将所述返回结果进行发送;第二执行模块,用于当所述操作结果中任一项不满足所述预设要求时,返回失败结果。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述REDIS分片方法的步骤。
一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述REDIS分片方法的步骤。
上述REDIS分片方法、装置、计算机设备和存储介质,通过接收发送的参数值,并对该参数值进行校验,获得唯一码包括:接收发送的参数值,并对该参数值进行校验,获得唯一码;发送操作请求给REDIS协议代理;该REDIS协议代理根据预设配置参数对唯一码进行解析;根据解析后获得的业务代理,REDIS协议代理进行对应的REDIS服务的跳转;REDIS协议代理根据配置选取路由,并对REDIS服务进行访问;REDIS数据库接收访问并执行访问结果,将访问结果返回给REDIS协议代理;接收REDIS协议代理发送的返回结果。因此,当需要进行大数据处理时,发送请求到REDIS协议代理上,REDIS协议代理根据配置解读ID编码,由路由跳转到指定的正确节点上,然后根据哈希值获取到数据结果,通过代理获取操作符后,对多键操作进行循环执行并等待返回结果状态。该方法通过代理协助和查询路由的哈希技术,极大的改善了数据存储的均衡,数据更集中规范,提高了大集群下数据的查询速度。
附图说明
图1为一个实施例中提供的REDIS分片方法的实施环境图;
图2为一个实施例中计算机设备的内部结构框图;
图3为一个实施例中REDIS分片方法的流程图;
图4为一个实施例中对参数值进行校验,获得唯一码的流程图;
图5为一个实施例中发送操作请求给REDIS协议代理的流程图;
图6为一个实施例中接收REDIS协议代理发送的返回结果的流程图;
图7为一个实施例中REDIS分片方法的流程图;
图8为一个实施例中REDIS分片的结构框图;
图9为一个实施例中唯一码获得单元的结构框图;
图10为一个实施例中操作请求发送单元的结构框图;
图11为一个实施例中唯一码解析单元的结构框图;
图12为一个实施例中接收单元的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
图1为一个实施例中提供的REDIS分片方法的实施环境图,如图1所示,在该实施环境中,包括计算机设备110以及终端120。
计算机设备110为客户端设备,例如为用户使用的电脑等计算机设备,计算机设备110上安装有应用系统,通过该应用系统接收传入参数值。终端120上安装有需要进行REDIS服务处理的应用系统,当需要进行REDIS分片时,用户可以在计算机设备110输入参数值,计算机设备110接收该输入的参数值,并对所述参数值进行校验,获得唯一码。然后发送操作请求给REDIS协议代理,终端120上的REDIS协议代理根据预设配置参数对该唯一码进行解析,并根据解析后获得的业务代理,进行对应的REDIS服务的跳转;然后由REDIS协议代理根据配置选取路由,对REDIS服务进行访问,REDIS数据库接收访问并执行访问结果,将该访问结果返回给REDIS协议代理,最后即将返回结果发送给计算机设备110。
需要说明的是,终端120以及计算机设备110可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。计算机设备110以及终端110可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明在此不做限制。
图2为一个实施例中计算机设备的内部结构示意图。如图2所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种REDIS分片方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种REDIS分片方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
如图3所示,在一个实施例中,提出了一种REDIS分片方法,该REDIS分片方法可以应用于上述的计算机设备110中,具体可以包括以下步骤:
步骤302,接收发送的参数值,并对参数值进行校验,获得唯一码;
在本实施例中,计算机设备110接收请求后,需要对参数进行校验并产生一个唯一码。
步骤304,发送操作请求给REDIS协议代理;
在本发明实施例中,计算机设备110会建立代理的连接地址,进行访问,如:ORACLE数据库JDBC一样。操作请求包括操作方法如,set保存,get获取等等,还包含key-value值。例如,当要保存一个人的姓名时,即为:name=zhangsan,即set(“name”,“zhangsan”)。
步骤306,REDIS协议代理根据预设配置参数对唯一码进行解析;
进一步的,REDIS协议代理根据预设配置参数对唯一码进行解析包括:依次获得操作方式和所述唯一码;根据所述预设配置参数截取业务类型,循环解析所述唯一码的组成。
在本发明实施例中,当REDIS协议代理接收请求后,会根据配置信息对该请求进行解析。例如:Config配置P001=R0,R0=redis库连接域名。
唯一码也就是Key值、ID编码,ID编码是应用根据编码规则生成的,应用系统ID生成具体规则如下:例如,客户信息包括张三,证件类型,身份证,家庭等等,可以用唯一的身份证来进行编码。P001为客户信息代理。在客户信息集群R1上,ID=代理配置+路由点服务实例+哈希值组成,crc16(身份证号)=91568;HASH+哈希数字;91568mod 16384=5;第5个哈希槽分区。N+数字,即P001R1N5HASH91568。再比如P001R0HASH0024936,P001根据代理配置获取方法,R0是REDIS实例,HASH0024936是哈希算法在002分区,4936节点。启动多个代理效果更佳。在代理中转的过程中,Redis-proxy代理链路分发处理,拦截获取操作符(save,query,update等),然后根据内部多键({key:value},{key:value}),循环解析唯一码的组成。
步骤308,根据解析后获得的业务代理,REDIS协议代理进行对应的REDIS服务的跳转;
在本发明实施例中,REDIS协议代理解析出请求的业务服务后,会根据代理集群连接,进行内部服务的跳转。如P002接收到了请求,而唯一码解析出业务类型P001后,将命令操作和key-value值,跳转到相应代理服务P001上。例如代理有3台及5个不同的集群。应用系统会根据规则生成ID这个key值。如330123199008082314这个参数,通过拼接码生成P001R1N5HASH9156;然后,在set(key,value)操作后,调用代理服务器;接着,代理P002收到信息后,截取前4位校验参数P001,然后中转到P001代理上,如果是自己就继续执行后面的;进一步的,P001服务,截取前2位R1,根据配置信息跳转到REDIS集群上;最后,即可进行数据的存取操作。其中,在R1集群找到N与HASH的参数,在node5节点上存储。HASH值作为该集群的唯一值。例如,代理集群包括三个业务时,分别为业务一、业务二、业务三,其中的Config配置具体包括:P001=R0,R1;P002=R3,R4;P003=R2R0,R1,R2,R3,R4=redis库连接域名。以R1数据库业务为例,P001会判断是哪个业务系列的,然后跳转到对应的业务代理上。
在一些发明实施例中,比如有3000条客户信息,需要保存到REDIS。如果保存到一台的话,发生故障后,就整体丢失了。所以在保存的时候,就进行拆分。Redis存储方式是key-value形式的。Key是主键,value是数据类型。多键事务是同时操作多个KEY,分片后数据可能存在不同的redis上。例如,修改3个数据的value值,key1,key2,key3的值分片后保存在不同的REDIS上,而修改的时候在redis服务器上只找到了key1,无法找到key2,key3,故无法实现。而通过在REDIS-PROXY代理中添加了请求中转,会分发到不同的REDIS上,获取全部请求后返回结果。
步骤310,REDIS协议代理根据配置选取路由,并对REDIS服务进行访问;
进一步的,REDIS协议代理判断所述唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
在本发明实施例中,该代理是请求所对应的业务代理后,获取根据REDIS实例,如果唯一码中有该路由(R0)实例参数,就进行REDIS服务请求。所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问包括:
步骤312,REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;
在本发明实施例中,REDIS接收访问并执行结果,将结果返回代理服务。在集群搭建的时候,需要给集群节点,分配哈希槽,包括0-16383,即16383个分区;例如在node1执行set a时,具体的步骤为:第一步,使用crc16算法对key进行计算,得到一个数字,然后对这个数字进行求余16384,Crc16:a=26384,26384%16384=10000;第二步,查找包含1000插槽的节点,找到node2,自动跳转到node2;第三步,在node2上执行set a命令,最终可以在node3上执行get a。换句话说,前述的查询过程包括a至10000;跳转到node2以及在node2执行get a。进一步的,Redis存储方式是key-value形式的。Key是主键,value是数据类型;多键事务是同时操作多个KEY,分片后数据可能存在不同的redis上。例如,修改3个数据的value值,key1,key2,key3的值分片后保存在不同的REDIS上,而修改的时候在redis服务器上只找到了key1,无法找到key2,key3,故无法实现。而通过在REDIS-PROXY代理中添加了请求解析并中转,会分发到不同的REDIS上,获取全部请求后返回结果。例如:set({“P001R0N3HASH235544”:”zhangsan”}),redis执行set方法操作,并返回结果。
步骤314,接收REDIS协议代理发送的返回结果。
在本发明实施例中,代理服务将结果返回放入LIST数组中,记录操作结果,等待所有结果。
图4示出了在一个实施例中,步骤S302即接收发送的参数值,并对所述参数值进行校验,获得唯一码步骤的实现流程图,具体可以包括以下步骤:
S402,根据所述参数值判断业务类型;
S404,根据所述业务类型获得代理服务的编码;
S406,根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;
S408,对转入参数的键值进行哈希算法计算,生成哈希值;
S410,将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
计算机设备110应用系统接收参数,根据传入参数值,进行业务类型判断,得出代理服务的编码,根据代理服务编码对应的源端目标REDIS实例的值进行轮询取值(负载均衡REDIS服务,使数据均匀分布),并对转入参数的key值进行crc16算法哈希,根据哈希值取余算出哈希槽分区位置。最后进行拼装成系统中的唯一码,并用该唯一码作为key值。根据请求操作生成请求代理命令。例如,客户端想要发送“保存人的信息的请求,则操作方法为set({“name”:”zhangsan”},{“birthday”:”1985-01-01”}),应用获取name参数,判断是客户信息业务,则获取对应代码服务p001编码,而P001编码下对应R0,R1,R2,R3的REDIS服务。应用系统则轮询获取对应的REDIS服务(即取完R0,则取R1,后R2,R3,R1一直循环)。则最终变成set({“P001R0N3HASH235544”:”zhangsan”},{“P001R0N3HASH235544”:”1985-01-01”})。
图5示出了一个实施例中,步骤S304即发送操作请求给REDIS协议代理的步骤的实现流程图,具体可以包括以下步骤:
S502,根据配置的连接池,建立与REDIS协议代理之间的连接地址;
S504,通过连接地址发送所述操作请求。
在转码后执行操作命令,应用客户端会根据配置的连接池,建立代理的连接会话,进行数据发送请求。
图6示出了一个实施例中,步骤S314即接收REDIS协议代理发送的返回结果的步骤的实现流程图,具体可以包括以下步骤:
S602,REDIS协议代理记录操作结果,并获得所有的操作结果;
S604,当操作结果全部满足预设要求时,将返回结果进行发送;
S606,当操作结果中任一项不满足预设要求时,返回失败结果。
代理服务将结果返回放入LIST数组中,记录操作结果,等待所有结果。记录结果为全部成功才能返回结果。否则,只要出现失败,就返回失败结果。
以图7为例,Redis-proxy代理链路分发处理,拦截获取操作符(save,query,update等),然后根据内部多键({key:value},{key:value}),循环解析唯一码的组成,内部跳转到相应代理上,然后根据实例名称找到REDIS连接池,访问REDIS集群,并等待操作结果状态返回。
如图8所示,在一个实施例中,提供了一种REDIS分片装置,该REDIS分片装置可以集成于上述的计算机设备110中,具体可以包括唯一码获得单元802、操作请求发送单元804、唯一码解析单元806、REDIS服务跳转单元808、REDIS服务访问单元810、访问结果返回单元812、接收单元814。
唯一码获得单元802,用于接收发送的参数值,并对参数值进行校验,获得唯一码;
操作请求发送单元804,用于发送操作请求给REDIS协议代理;
唯一码解析单元806,用于REDIS协议代理根据预设配置参数对唯一码进行解析;
REDIS服务跳转单元808,用于根据解析后获得的业务代理,REDIS协议代理进行对应的REDIS服务的跳转;
REDIS服务访问单元810,用于REDIS协议代理根据配置选取路由,并对REDIS服务进行访问;
访问结果返回单元812,用于REDIS数据库接收访问并执行访问结果,将访问结果返回给REDIS协议代理;
接收单元814,用于接收REDIS协议代理发送的返回结果。
如图9所示,在一个实施例中,唯一码获得单元802获得的唯一码由REDIS协议代理配置、路由点服务实例和哈希值组成。唯一码获得单元802包括:业务类型判断模块802A、代理服务编码获得模块802B、REDIS实例值获得模块802C、哈希值生成模块802D、唯一码拼装模块802E。
业务类型判断模块802A、用于根据所述参数值判断业务类型;
代理服务编码获得模块802B,用于根据所述业务类型获得代理服务的编码;
REDIS实例值获得模块802C,用于根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;
哈希值生成模块802D,用于对转入参数的键值进行哈希算法计算,生成哈希值;
唯一码拼装模块802E,用于将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
如图10所示,在一个实施例中,操作请求发送单元804包括:连接地址建立模块804A和操作请求执行模块804B。
连接地址建立模块804A,用于根据配置的连接池,建立与REDIS协议代理之间的连接地址;
操作请求执行模块804B,用于通过连接地址发送操作请求。
如图11所示,在一个实施例中,唯一码解析单元806包括:信息获取模块806A和循环解析模块806B。
信息获取模块806A,用于依次获得操作方式和所述唯一码;
循环解析模块806B,用于根据预设配置参数截取业务类型,循环解析唯一码的组成。
在一个实施例中,REDIS服务访问单元810包括:参数判断模块,用于判断唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
如图12所示,在一个实施例中,接收单元814包括:操作结果获得模块814A、第一执行模块814B和第二执行模块814C。
操作结果获得模块814A,用于REDIS协议代理记录操作结果,并获得所有的操作结果;
第一执行模块814B,用于当操作结果全部满足预设要求时,将返回结果进行发送;
第二执行模块814C,用于当操作结果中任一项不满足预设要求时,返回失败结果。
在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收发送的参数值,并对所述参数值进行校验,获得唯一码;发送操作请求给REDIS协议代理;所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;接收所述REDIS协议代理发送的返回结果。
在一个实施例中,所述处理器所执行的根据所述接收发送的参数值,并对所述参数值进行校验,获得唯一码的步骤包括:根据所述参数值判断业务类型;根据所述业务类型获得代理服务的编码;根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;对转入参数的键值进行哈希算法计算,生成哈希值;将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
在一个实施例中,所述处理器所执行的所述发送操作请求给REDIS协议代理的步骤包括:根据配置的连接池,建立与所述REDIS协议代理之间的连接地址;通过所述连接地址发送所述操作请求。
在一个实施例中,所述处理器所执行的所述REDIS协议代理根据预设配置参数对所述唯一码进行解析的步骤包括:依次获得操作方式和所述唯一码;根据所述预设配置参数截取业务类型,循环解析所述唯一码的组成。
在一个实施例中,所述处理器所执行的所REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问的步骤包括:判断所述唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
在一个实施例中,所述处理器所执行的所述唯一码由所述REDIS协议代理配置、路由点服务实例和哈希值组成。
在一个实施例中,所述处理器所执行的接收所述REDIS协议代理发送的返回结果的步骤包括:所述REDIS协议代理记录操作结果,并获得所有的操作结果;当所述操作结果全部满足预设要求时,将所述返回结果进行发送;当所述操作结果中任一项不满足所述预设要求时,返回失败结果。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收发送的参数值,并对所述参数值进行校验,获得唯一码;发送操作请求给REDIS协议代理;所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;接收所述REDIS协议代理发送的返回结果。
在一个实施例中,所述处理器所执行的根据所述接收发送的参数值,并对所述参数值进行校验,获得唯一码的步骤包括:根据所述参数值判断业务类型;根据所述业务类型获得代理服务的编码;根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;对转入参数的键值进行哈希算法计算,生成哈希值;将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
在一个实施例中,所述处理器所执行的所述发送操作请求给REDIS协议代理的步骤包括:根据配置的连接池,建立与所述REDIS协议代理之间的连接地址;通过所述连接地址发送所述操作请求。
在一个实施例中,所述处理器所执行的所述REDIS协议代理根据预设配置参数对所述唯一码进行解析的步骤包括:依次获得操作方式和所述唯一码;根据所述预设配置参数截取业务类型,循环解析所述唯一码的组成。
在一个实施例中,所述处理器所执行的所REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问的步骤包括:判断所述唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
在一个实施例中,所述处理器所执行的所述唯一码由所述REDIS协议代理配置、路由点服务实例和哈希值组成。
在一个实施例中,所述处理器所执行的接收所述REDIS协议代理发送的返回结果的步骤包括:所述REDIS协议代理记录操作结果,并获得所有的操作结果;当所述操作结果全部满足预设要求时,将所述返回结果进行发送;当所述操作结果中任一项不满足所述预设要求时,返回失败结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种REDIS分片方法,其特征在于,所述方法包括:
接收发送的参数值,并对所述参数值进行校验,获得唯一码;
发送操作请求给REDIS协议代理;
所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;
根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;
所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;
REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;
接收所述REDIS协议代理发送的返回结果。
2.根据权利要求1所述的方法,其特征在于,所述接收发送的参数值,并对所述参数值进行校验,获得唯一码包括:
根据所述参数值判断业务类型;
根据所述业务类型获得代理服务的编码;
根据所述代理服务的编码获得对应的目标REDIS实例的值,并进行轮询取值;
对转入参数的键值进行哈希算法计算,生成哈希值;
将所述哈希值进行取余,获得哈希槽分区的位置后,进行拼装获得唯一码。
3.根据权利要求1所述的方法,其特征在于,所述发送操作请求给REDIS协议代理包括:
根据配置的连接池,建立与所述REDIS协议代理之间的连接地址;
通过所述连接地址发送所述操作请求。
4.根据权利要求1所述的方法,其特征在于,所述REDIS协议代理根据预设配置参数对所述唯一码进行解析包括:
依次获得操作方式和所述唯一码;
根据所述预设配置参数截取业务类型,循环解析所述唯一码的组成。
5.根据权利要求1所述的方法,其特征在于,所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问包括:
判断所述唯一码中是否存在所述路由的参数值,若存在,则进行REDIS服务访问。
6.根据权利要求1所述的方法,其特征在于,所述唯一码由所述REDIS协议代理配置、路由点服务实例和哈希值组成。
7.根据权利要求1所述的方法,其特征在于,所述接收所述REDIS协议代理发送的返回结果包括:
所述REDIS协议代理记录操作结果,并获得所有的操作结果;
当所述操作结果全部满足预设要求时,将所述返回结果进行发送;
当所述操作结果中任一项不满足所述预设要求时,返回失败结果。
8.一种REDIS分片装置,其特征在于,所述装置包括:
唯一码获得单元,用于接收发送的参数值,并对所述参数值进行校验,获得唯一码;
操作请求发送单元,用于发送操作请求给REDIS协议代理;
唯一码解析单元,用于所述REDIS协议代理根据预设配置参数对所述唯一码进行解析;
REDIS服务跳转单元,用于根据解析后获得的业务代理,所述REDIS协议代理进行对应的REDIS服务的跳转;
REDIS服务访问单元,用于所述REDIS协议代理根据配置选取路由,并对所述REDIS服务进行访问;
访问结果返回单元,用于REDIS数据库接收访问并执行访问结果,将所述访问结果返回给所述REDIS协议代理;
接收单元,用于接收所述REDIS协议代理发送的返回结果。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910470437.4A CN110347718B (zh) | 2019-05-31 | 2019-05-31 | 一种redis分片方法、装置、计算机设备和存储介质 |
PCT/CN2019/118231 WO2020238060A1 (zh) | 2019-05-31 | 2019-11-13 | 一种redis分片方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910470437.4A CN110347718B (zh) | 2019-05-31 | 2019-05-31 | 一种redis分片方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110347718A true CN110347718A (zh) | 2019-10-18 |
CN110347718B CN110347718B (zh) | 2023-12-15 |
Family
ID=68174546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910470437.4A Active CN110347718B (zh) | 2019-05-31 | 2019-05-31 | 一种redis分片方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110347718B (zh) |
WO (1) | WO2020238060A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020238060A1 (zh) * | 2019-05-31 | 2020-12-03 | 平安科技(深圳)有限公司 | 一种redis分片方法、装置、计算机设备和存储介质 |
CN112351096A (zh) * | 2020-11-04 | 2021-02-09 | 福建天泉教育科技有限公司 | 一种大数据场景下消息处理的方法及终端 |
WO2024207837A1 (zh) * | 2023-12-12 | 2024-10-10 | 天翼云科技有限公司 | 一种分布式缓存发布订阅的方法、系统和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742352A (zh) * | 2021-09-17 | 2021-12-03 | 中国银行股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN118349400B (zh) * | 2024-06-17 | 2024-08-16 | 杭州宇信数字科技有限公司 | 一种用于Java应用的Redis连接池的创建方法、装置和存储介质 |
CN118377435B (zh) * | 2024-06-24 | 2024-09-10 | 杭州宇信数字科技有限公司 | 一种基于终端代理的集群扩缩容方法、装置、介质和设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138501A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种可配置的动态报表生成方法及系统 |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
WO2017075923A1 (zh) * | 2015-11-06 | 2017-05-11 | 网宿科技股份有限公司 | 一种Redis Key管理方法及系统 |
US20170185635A1 (en) * | 2015-12-29 | 2017-06-29 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for identifying and analyzing hidden data relationships in databases |
US20180063089A1 (en) * | 2016-08-29 | 2018-03-01 | Microsoft Technology Licensing, Llc. | Cross-tenant data leakage isolation |
CN108183961A (zh) * | 2018-01-04 | 2018-06-19 | 中电福富信息科技有限公司 | 一种基于Redis的分布式缓存方法 |
EP3341858A1 (en) * | 2015-08-26 | 2018-07-04 | Oracle International Corporation | Techniques related to binary encoding of hierarchical data objects to support efficient path navigation of the hierarchical data objects |
CN109769028A (zh) * | 2019-01-25 | 2019-05-17 | 深圳前海微众银行股份有限公司 | Redis集群管理方法、装置、设备及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446896B (zh) * | 2014-08-29 | 2018-05-04 | 国际商业机器公司 | 映射化简应用的缓存管理方法和装置 |
CN105357296B (zh) * | 2015-10-30 | 2018-10-23 | 河海大学 | 一种Docker云平台下弹性缓存系统 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN110347718B (zh) * | 2019-05-31 | 2023-12-15 | 平安科技(深圳)有限公司 | 一种redis分片方法、装置、计算机设备和存储介质 |
-
2019
- 2019-05-31 CN CN201910470437.4A patent/CN110347718B/zh active Active
- 2019-11-13 WO PCT/CN2019/118231 patent/WO2020238060A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138501A (zh) * | 2015-08-10 | 2015-12-09 | 北京思特奇信息技术股份有限公司 | 一种可配置的动态报表生成方法及系统 |
EP3341858A1 (en) * | 2015-08-26 | 2018-07-04 | Oracle International Corporation | Techniques related to binary encoding of hierarchical data objects to support efficient path navigation of the hierarchical data objects |
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
WO2017075923A1 (zh) * | 2015-11-06 | 2017-05-11 | 网宿科技股份有限公司 | 一种Redis Key管理方法及系统 |
US20170185635A1 (en) * | 2015-12-29 | 2017-06-29 | Cognizant Technology Solutions India Pvt. Ltd. | Method and system for identifying and analyzing hidden data relationships in databases |
US20180063089A1 (en) * | 2016-08-29 | 2018-03-01 | Microsoft Technology Licensing, Llc. | Cross-tenant data leakage isolation |
CN108183961A (zh) * | 2018-01-04 | 2018-06-19 | 中电福富信息科技有限公司 | 一种基于Redis的分布式缓存方法 |
CN109769028A (zh) * | 2019-01-25 | 2019-05-17 | 深圳前海微众银行股份有限公司 | Redis集群管理方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
褚孔统;宋建宇;王国强;: "基于代理服务的Oracle数据库安全访问", 指挥信息系统与技术, no. 02 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020238060A1 (zh) * | 2019-05-31 | 2020-12-03 | 平安科技(深圳)有限公司 | 一种redis分片方法、装置、计算机设备和存储介质 |
CN112351096A (zh) * | 2020-11-04 | 2021-02-09 | 福建天泉教育科技有限公司 | 一种大数据场景下消息处理的方法及终端 |
CN112351096B (zh) * | 2020-11-04 | 2023-03-24 | 福建天泉教育科技有限公司 | 一种大数据场景下消息处理的方法及终端 |
WO2024207837A1 (zh) * | 2023-12-12 | 2024-10-10 | 天翼云科技有限公司 | 一种分布式缓存发布订阅的方法、系统和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020238060A1 (zh) | 2020-12-03 |
CN110347718B (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110347718A (zh) | 一种redis分片方法、装置、计算机设备和存储介质 | |
US11457080B1 (en) | Service mesh management | |
US7451071B2 (en) | Data model for automated server configuration | |
CN111861140B (zh) | 一种业务处理方法、装置、存储介质和电子装置 | |
US7962635B2 (en) | Systems and methods for single session management in load balanced application server clusters | |
CN103119907B (zh) | 提供用于访问控制的智能组的系统和方法 | |
CN109871224A (zh) | 一种基于用户标识的灰度发布方法、系统、介质及设备 | |
CN110647559B (zh) | 数据处理方法、相关节点及系统 | |
US20050108394A1 (en) | Grid-based computing to search a network | |
US20200236187A1 (en) | Discovery and service mapping of application programming interface proxies | |
US20110166952A1 (en) | Facilitating dynamic construction of clouds | |
US8977758B2 (en) | Service bus system, service bus device, and method for assuring connection uniqueness | |
EP1435719A2 (en) | Request processing swtich | |
WO2005074228A1 (en) | System and method for a directory secured user account | |
CN106169963A (zh) | 服务页面的访问方法及系统、代理服务器 | |
CN110519240A (zh) | 一种单点登录方法、装置及系统 | |
CN112434302B (zh) | 一种多任务协作漏洞平台及其构建方法、服务方法 | |
JP2016144186A (ja) | 通信情報制御装置、中継システム、通信情報制御方法、および、通信情報制御プログラム | |
US8019888B2 (en) | Request routing system for and method of request routing | |
US12100519B2 (en) | Peer-to-peer secure and scalable network architecture | |
CN104753774B (zh) | 一种分布式企业综合接入网关 | |
EP3709571A1 (en) | Device management clustering | |
CN117155606A (zh) | 网页登录状态的维持方法及系统 | |
US10481963B1 (en) | Load-balancing for achieving transaction fault tolerance | |
JP2003006162A (ja) | 認証アプリケーションサービスシステム |
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 |