一种基于消息队列的Redis集群海量数据快速清理系统及方法技术方案

技术编号:16818767 阅读:43 留言:0更新日期:2017-12-16 12:04
本发明专利技术公开了一种基于消息队列的Redis集群海量数据快速清理系统及方法,该系统包括管理节点、Redis集群节点、消息队列节点和临时缓存节点;Redis集群节点:在不同的服务器上部署Redis cluster服务,至少部署三个Redis主库,每个Redis主库至少对应1个Redis从库;消息队列节点:在不同的服务器上部署消息队列分布式集群作为对Redis键值进行处理的中间载体;临时缓存节点:在两台服务器上分别部署Pika主库和Pika从库,用于存储Redis集群清理的数据;管理节点:存储所有元信息,同时部署Web应用服务,访问Redis集群、消息队列集群和Pika主库,对Redis键值进行删除处理。本发明专利技术的处理速度接近内存级速度,可以实现快速清理海量数据,使用简单可靠,对Redis集群服务影响小,可以实现数据一键回滚。

A fast cleaning system and method for mass data of Redis cluster based on Message Queuing

The invention discloses a fast cleaning system of Redis cluster data based on message queue and method, the system includes a Redis cluster management node, node, node and message queue to temporarily cache node; Redis cluster node: the deployment of Redis cluster service on different servers deployed at least three Redis main library, each Redis library corresponding to at least 1 Redis from base; message queue nodes in different servers distributed message queue cluster as the intermediate vector processing of Redis keys; temporary cache nodes: the two servers are deployed in the Pika main library and Pika from the library for storing Redis data cleaning cluster management node: storage; all meta information, while the deployment of Web application service, access to the Redis cluster, Message Queuing cluster and Pika main library, the Redis key to delete processing. The processing speed of the invention is close to the memory level speed, which can quickly clean up massive data, and is simple and reliable. It has little influence on Redis cluster service, and can achieve data one click rollback.

【技术实现步骤摘要】
一种基于消息队列的Redis集群海量数据快速清理系统及方法
本专利技术属于计算机
,主要应用于Redis数据库的应用场景,用于快速清理Redis集群的海量数据。
技术介绍
对于互联网公司而言,Redis数据库作为缓存和高性能存储方案,应用越来越广泛,尤其是Redis集群,由于支持分布式高可用和横向扩展,得到了普及应用。但是,Redis集群的特点决定了清理海量数据的复杂度,现有Redis集群数据清理的方案存在如下缺点:1)清理速度慢,无法满足短时间内清理海量数据的需求,从而影响生产环境服务的正常运转。2)对Redis集群服务影响大,对于高并发Redis集群而言,清理海量数据,会影响生产环境业务正常运行。3)易用性差,对操作人员能力要求很高,操作便捷性差。
技术实现思路
本专利技术针对现有技术的不足,提供一种基于消息队列的Redis集群海量数据快速清理系统及方法,基于消息队列可以避免数据写入磁盘,在内存中对数据进行分析后,调用Redis接口即可进行快速清理。本专利技术的目的是通过以下技术方案来实现的:一种基于消息队列的Redis集群海量数据快速清理系统,该系统包括管理节点、Redis集群节点、消息队列节点和临时缓存节点。Redis集群节点:在不同的服务器上部署Rediscluster服务,至少部署三个Redis主库,每个Redis主库至少对应1个Redis从库,避免某个主库宕机后,Rediscluster无法正常运行;不同的Redis主库端口不同,Redis主库和对应的Redis从库端口一致;消息队列节点:在不同的服务器上部署消息队列分布式集群,服务器为IO型服务器,为了支持海量数据,采用支持分布式和横向扩展的消息队列存储方案,设置两副本,部署三个分片,消息队列分布式集群作为对Redis键值进行处理的中间载体;临时缓存节点:在两台服务器上分别部署Pika主库和Pika从库,端口号一致,用于存储Redis集群清理的数据,便于进行回滚操作,为了提高处理速度和节省内存空间,采用Pika作为存储方案。管理节点:存储所有元信息,包括Redis集群元信息、消息队列元信息、临时缓存元信息和缓存数据统计信息,所述Redis集群元信息包括:Redis集群中所有Redis主库的IP和端口,以及每个Redis集群的集群标识符,集群标识符采用Redis集群对应的业务名称英文字符,不同的Redis集群,集群标识符不同;消息队列元信息包括:消息队列集群中所有分片的IP、端口;临时缓存元信息包括:Pika主库的IP、端口和密码;缓存数据统计信息包括:键值前缀、键值数量和执行时间;所述键值前缀是Redis集群中某一类Key的前缀,一个键值前缀可以匹配到一个或者多个Key,Key是Redis集群中的键;所述执行时间包括删除某个键值前缀匹配到的所有键值的开始时间点和完成时间点;同时,在管理节点上部署Web应用服务,访问Redis集群、消息队列集群和Pika主库,对Redis键值进行删除处理。进一步地,所述管理节点包括平台化管理模块、元信息管理模块、键值匹配模块、缓存数据管理模块、键值映射模块和键值清理模块;平台化管理模块需要传入参数为:集群标识符和键值前缀;平台化管理模块提供一个Web界面,用户进行删除操作时,需要用户填写所述集群标识符和键值前缀,然后调用元信息管理模块,得到集群标识符对应的Redis集群中所有分片的IP和端口;同时,获得消息队列集群的所有分片的IP和端口,最后,获取PIka主库的IP、端口和密码;然后调用键值匹配模块,匹配到所述键值前缀对应的键值,并且写入到所述消息队列集群对应的Topic中;接下来,同时调用缓存数据管理模块和键值映射模块,分别备份所述键值前缀对应的键值到Pika主从集群,所有键值根据指定的hash算法进行运算,得到对应的hash值,然后根据所述hash值创建对应的数组,hash值相同的所有键值记录在对应的数组中,为Redis主从集群每个分片创建一个对应的Topic,所述Topic包含了本分片中所有键值对应的数组;最后,调用键值清理模块,清理所述键值前缀对应的所有键值,执行结束后,记录缓存数据统计信息,并且在Web界面中展示给用户;元信息管理模块,需要传入的参数:Redis集群元信息、消息队列元信息和临时缓存元信息;首先,在Redis集群节点部署Rediscluster服务,包含3个分片,每个分片包括一主一从,所述Rediscluster的所有分片的主库的IP和端口记录到Redis集群元信息,同时,为每个Rediscluster定义一个集群标识符作为所述Rediscluster的唯一标识,将所述集群标识符一同记录到Redis集群元信息中,如果所述Rediscluster中某个分片的主库宕机,Rediscluster自动触发主库故障切换,然后使用新主库的IP和端口替换旧的主库的IP和端口;然后,在消息队列节点部署一套消息队列分布式集群,包括三个分片,并且设置为两副本,然后记录所述消息队列集群所有分片的IP和端口到消息队列元信息中,如果所述消息队列分布式集群的分片发生变化,需要相应修改所述消息队列元信息;最后,在临时缓存节点部署一套Pika主从集群,并且记录Pika主库的IP、端口和密码到临时缓存元信息,如果所述Pika主库宕机,需要人工提升Pika从库为新主库,然后更新所述临时缓存元信息;所述键值匹配模块,需要传入的参数:Redis集群元信息、键值前缀和消息队列元信息;在管理节点上,根据传入的所述Redis集群元信息,访问Rediscluster的所有分片,调用Redis接口,匹配所述键值前缀对应的所有键值,然后调用消息队列自身接口写入到所述消息队列集群中对应的Topic中;Redis集群中不同的分片的key,写入到消息队列中不同的Topic中,这样可以提升处理速度;所述Topic命名方式:match_集群标识符_端口号;match表示所述Topic用于匹配键值;所述端口号是Redis集群中不同的分片的端口号,不同的分片,对应不同的Topic;本模块结束后,返回Topic名称;所述缓存数据管理模块,需要传入的参数:消息队列元信息、Topic名称和临时缓存元信息;键值匹配模块执行结束后,返回Topic名称,在管理节点上,根据所述消息队列元信息,解析得到消息队列集群所有分片的IP和端口,访问所述消息队列集群,根据Topic名称解析得到Redis集群所有分片的主库IP和端口,读取所述Topic的消息(键值),分别访问Redis集群中不同的分片,读取键值对应的Key、value以及过期时间,然后写入到Pika主库;根据所述临时缓存元信息解析得到Pika的主库IP端口和密码;在键值清理模块成功结束后,访问所述Pika主库,清理所述键值前缀对应的数据;如果键值清理模块执行异常,需要回滚数据,那么访问所述Pika主库,读取所述键值写入到Redis集群中;所述键值映射模块,需要传入的参数:消息队列元信息和Topic名称;访问所述消息队列集群,根据所述Topic名称,获取所有的键值,然后对所述键值进行hash运算,得到对应的hash值,针对每个所述hash值建立对应的数组,相同hash值的所有键值分布在同一个数组中;同时,本文档来自技高网...
一种基于消息队列的Redis集群海量数据快速清理系统及方法

【技术保护点】
一种基于消息队列的Redis集群海量数据快速清理系统,其特征在于,该系统包括管理节点、Redis集群节点、消息队列节点和临时缓存节点;Redis集群节点:在不同的服务器上部署Redis cluster服务,至少部署三个Redis主库,每个Redis主库至少对应1个Redis从库;不同的Redis主库端口不同,Redis主库和对应的Redis从库端口一致;消息队列节点:在不同的服务器上部署消息队列分布式集群,服务器为IO型服务器,采用支持分布式和横向扩展的消息队列存储方案,设置两副本,部署三个分片,消息队列分布式集群作为对Redis键值进行处理的中间载体;临时缓存节点:在两台服务器上分别部署Pika主库和Pika从库,端口号一致,用于存储Redis集群清理的数据,采用Pika作为存储方案;管理节点:存储所有元信息,包括Redis集群元信息、消息队列元信息、临时缓存元信息和缓存数据统计信息,所述Redis集群元信息包括:Redis集群中所有Redis主库的IP和端口,以及每个Redis集群的集群标识符,集群标识符采用Redis集群对应的业务名称,不同的Redis集群,集群标识符不同;消息队列元信息包括:消息队列集群中所有分片的IP、端口;临时缓存元信息包括:Pika主库的IP、端口和密码;缓存数据统计信息包括:键值前缀、键值数量和执行时间;所述键值前缀是Redis集群中某一类Key的前缀,一个键值前缀可以匹配到一个或者多个Key;所述执行时间包括删除某个键值前缀匹配到的所有键值的开始时间点和完成时间点;同时,在管理节点上部署Web应用服务,访问Redis集群、消息队列集群和Pika主库,对Redis键值进行删除处理。...

【技术特征摘要】
1.一种基于消息队列的Redis集群海量数据快速清理系统,其特征在于,该系统包括管理节点、Redis集群节点、消息队列节点和临时缓存节点;Redis集群节点:在不同的服务器上部署Rediscluster服务,至少部署三个Redis主库,每个Redis主库至少对应1个Redis从库;不同的Redis主库端口不同,Redis主库和对应的Redis从库端口一致;消息队列节点:在不同的服务器上部署消息队列分布式集群,服务器为IO型服务器,采用支持分布式和横向扩展的消息队列存储方案,设置两副本,部署三个分片,消息队列分布式集群作为对Redis键值进行处理的中间载体;临时缓存节点:在两台服务器上分别部署Pika主库和Pika从库,端口号一致,用于存储Redis集群清理的数据,采用Pika作为存储方案;管理节点:存储所有元信息,包括Redis集群元信息、消息队列元信息、临时缓存元信息和缓存数据统计信息,所述Redis集群元信息包括:Redis集群中所有Redis主库的IP和端口,以及每个Redis集群的集群标识符,集群标识符采用Redis集群对应的业务名称,不同的Redis集群,集群标识符不同;消息队列元信息包括:消息队列集群中所有分片的IP、端口;临时缓存元信息包括:Pika主库的IP、端口和密码;缓存数据统计信息包括:键值前缀、键值数量和执行时间;所述键值前缀是Redis集群中某一类Key的前缀,一个键值前缀可以匹配到一个或者多个Key;所述执行时间包括删除某个键值前缀匹配到的所有键值的开始时间点和完成时间点;同时,在管理节点上部署Web应用服务,访问Redis集群、消息队列集群和Pika主库,对Redis键值进行删除处理。2.根据权利要求1所述的基于消息队列的Redis集群海量数据快速清理系统,其特征在于,所述管理节点包括平台化管理模块、元信息管理模块、键值匹配模块、缓存数据管理模块、键值映射模块和键值清理模块;平台化管理模块需要传入参数为:集群标识符和键值前缀;平台化管理模块提供一个Web界面,用户进行删除操作时,填写集群标识符和键值前缀,然后调用元信息管理模块,得到集群标识符对应的Redis集群中所有分片的IP和端口;同时,获得消息队列集群的所有分片的IP和端口,最后,获取Pika主库的IP、端口和密码;然后调用键值匹配模块,匹配到所述键值前缀对应的键值,并且写入到所述消息队列集群对应的Topic中;接下来,同时调用缓存数据管理模块和键值映射模块,分别备份所述键值前缀对应的键值到Pika主从集群,所有键值根据指定的hash算法进行运算,得到对应的hash值,然后根据所述hash值创建对应的数组,hash值相同的所有键值记录在对应的数组中,为Redis主从集群每个分片创建一个对应的Topic,所述Topic包含了本分片中所有键值对应的数组;最后,调用键值清理模块,清理所述键值前缀对应的所有键值,执行结束后,记录缓存数据统计信息,并且在Web界面中展示给用户;元信息管理模块,需要传入的参数:Redis集群元信息、消息队列元信息和临时缓存元信息;首先,在Redis集群节点部署Rediscluster服务,包含3个分片,每个分片包括一主一从,所述Rediscluster的所有分片的主库的IP和端口记录到Redis集群元信息,同时,为每个Rediscluster定义一个集群标识符作为所述Rediscluster的唯一标识,将所述集群标识符一同记录到Redis集群元信息中,如果所述Rediscluster中某个分片的主库宕机,Rediscluster自动触发主库故障切换,然后使用新主库的IP和端口替换旧的主库的IP和端口;然后,在消息队列节点部署一套消息队列分布式集群,包括三个分片,并且设置为两副本,然后记录所述消息队列集群所有分片的IP和端口到消息队列元信息中,如果所述消息队列分布式集群的分片发生变化,需要相应修改所述消息队列元信息;最后,在临时缓存节点部署一套Pika主从集群,并且记录Pika主库的IP、端口和密码到临时缓存元信息,如果所述Pika主库宕机,人工提升Pika从库为新主库,然后更新所述临时缓存元信息;所述键值匹配模块,需要传入的参数:Redis集群元信息、键值前缀和消息队列元信息;根据传入的所述Redis集群元信息,访问Rediscluster的所有分片,调用Redis接口,匹配所述键值前缀对应的所有键值,然后调用消息队列自身接口写入到所述消息队列集群中对应的Topic中;Redis集群中不同的分片的key,写入到消息队列中不同的Topic中;所述Topic命名方式:match_集群标识符_端口号;match表示所述Topic用于匹配键值,所述端口号是Redis集群中不同的分片的端口号,不同的分片对应不同的Topic;本模块结束后,返回Topic名称;所述缓存数据管理模块,需要传入的参数:消息队列元信息、Topic名称和临时缓存元信息;...

【专利技术属性】
技术研发人员:顾伟涛
申请(专利权)人:杭州铭师堂教育科技发展有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1