一种Redis Key管理方法及系统技术方案

技术编号:15391545 阅读:44 留言:0更新日期:2017-05-19 04:49
本发明专利技术提供一种Redis Key 管理方法及系统,用于对流式框架中同一个业务产生的Redis Key的管理控制过程中,所述方法包括:将相同业务产生的Redis Key封装后保存至同一个数据桶内;对同一个数据桶内的Redis Key进行去重处理以供外部数据调用;对外部数据调用后的Redis Key进行批量删除。本发明专利技术将同一个业务中的,位于同一分区中的Redis Key使用数据桶进行保存,可以定位数据桶,对同一个数据桶内的Redis Key进行去重处理以供外部数据调用并对外部数据调用后的Redis Key进行批量删除,有效对Redis中Key进行管控,快速查找到所需的Redis Key。

Redis Key management method and system

The invention provides a system and a Redis Key management method, control process for the same business generated convection in the framework of Redis management of Key, the method comprises the following steps: Redis Key package the same business generated after the same data is saved to the barrel of the same data; the barrel of the Redis Key to heavy processing for external data on the external data call after call; Redis Key batch delete. In the invention, the same business, located in the same partition in Redis Key use data bucket to save, can locate data on the same data bucket, bucket of Redis Key to heavy processing for external data and external data on call after call Redis Key batch delete effective control of Redis in Key, quickly find the required Redis Key.

【技术实现步骤摘要】
一种RedisKey管理方法及系统
本专利技术涉及数据库
,特别是涉及Storm中RedisKey
,具体为一种RedisKey管理方法及系统。
技术介绍
Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样,Storm也可以处理大批量的数据。然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。Storm同样还具备容错和分布计算这些特性,这就让Storm可以扩展到不同的机器上进行大批量的数据处理。Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis是一个高性能的Key-value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。在Storm业务处理过程中,系统使用Redis进行数据的计算,并将数据暂存在Redis中。Redis是以Key-value形式存储的数据库,使得海量的计算结果也会伴随着海量的Key。当Redis中同时保存多个业务的数据时,要从这样的数据库中找到下一个进行处理的RedisKey就会异常困难。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种RedisKey管理方法及系统,用于解决现有技术中没有对RedisKey进行管控导致的难以快速查找到所需的RedisKey的问题。为实现上述目的及其他相关目的,本专利技术提供一种RedisKey管理方法,用于对流式框架中同一个业务产生的RedisKey的管理控制过程中,所述RedisKey管理方法包括:将相同业务产生的RedisKey封装后保存至同一个数据桶内;对同一个数据桶内的RedisKey进行去重处理以供外部数据调用;对外部数据调用后的RedisKey进行批量删除。优选地,以去重集合的数据类型将相同业务产生的RedisKey封装后保存至同一个数据桶内。优选地,所述对同一个数据桶内的RedisKey进行去重处理以供外部数据调用具体包括:定时从所述数据桶内分割出包含预设个数的RedisKey的子集;对分割出的各所述子集进行去重处理,使得各所述子集中不存在重复的RedisKey;对去重处理后的子集进行标记以供外部数据调用。优选地,利用lua脚本编程实现从所述数据桶内分割出包含预设个数的RedisKey的子集并对分割出的各所述子集进行去重处理,使得各所述子集中不存在重复的RedisKey;每次在达到预设的去重的间隔时间时,执行所述lua脚本。优选地,所述对外部数据调用后的RedisKey进行批量删除具体包括:记录标记的所述子集中被外部数据调用的RedisKey;定时判断所述子集中所包含的RedisKey是否全部被外部数据调用过,并在所述子集中包含的RedisKey全部被外部数据调用过时,删除所述子集中的所有RedisKey。优选地,所述对外部数据调用后的RedisKey进行批量删除进一步包括:每次在达到预设的删除的间隔时间时,确定所述子集是否为预先标记的可删除状态,若是则进一步确定所述子集的长度值,在所述子集的长度值为零或所述子集的长度值与预先记录的所述子集中被外部数据调用的RedisKey的个数值相等时,删除所述子集中的所有RedisKey。优选地,以数组形式记录标记的所述子集中被外部数据调用的RedisKey。优选地,采用Redis的pipeline方式来批量删除Rediskey。为实现上述目的,本专利技术还提供一种RedisKey管理系统,用于对流式框架中同一个业务产生的RedisKey的管理控制过程中,所述RedisKey管理系统包括:数据桶保存模块,用于将相同业务产生的RedisKey封装后保存至同一个数据桶内;数据去重模块,与所述数据桶保存模块相连,用于对同一个数据桶内的RedisKey进行去重处理以供外部数据调用;数据删除模块,与所述数据去重模块相连,用于对外部数据调用后的RedisKey进行批量删除。优选地,所述数据桶保存模块以去重集合的数据类型将相同业务产生的RedisKey封装后保存至同一个数据桶内。优选地,所述数据去重模块具体包括:子集分割单元,用于定时从所述数据桶内分割出包含预设个数的RedisKey的子集;分割定时单元,与所述子集分割单元相连,用于设置所述子集分割单元每次执行的间隔时间;去重处理单元,分别与所述子集分割单元和所述分割定时单元相连,用于对分割出的各所述子集进行去重处理,使得各所述子集中不存在重复的RedisKey;子集标记单元,与所述去重处理单元相连,用于对去重处理后的子集进行标记以供外部数据调用。优选地,所述子集分割单元、所述定时单元以及所述去重处理单元利用lua脚本编程实现,每次在达到预设的去重的间隔时间时,执行所述lua脚本。优选地,所述数据删除模块具体包括:记录单元,与所述子集标记单元相连,用于记录标记的所述子集中被外部数据调用的RedisKey;判断单元,分别与所述子集标记单元、所述记录单元以及所述删除定时单元相连,用于判断所述所述子集中包含的RedisKey是否全部被外部数据调用过;删除定时单元,与所述判断单元相连,用于设置所述判断单元每次执行的间隔时间;删除单元,与所述判断单元相连,在所述子集中包含的RedisKey全部被外部数据调用过时,删除所述子集中的所有RedisKey。优选地,所述判断单元进一步包括:删除状态判断子单元,用于每次在达到预设的删除的间隔时间时,确定所述子集是否为预先标记的可删除状态;长度值判断子单元,与所述删除状态判断子单元相连,用于在所述子集为预先标记的可删除状态时确定所述子集的长度值是否为零或所述子集的长度值与预先记录的所述子集中被外部数据调用的RedisKey的个数值是否相等;在所述子集的长度值为零或所述子集的长度值与预先记录的所述子集中被外部数据调用的RedisKey的个数值相等时,由所述删除单元删除所述子集中的所有RedisKey。优选地,所述记录单元以数组形式记录标记的所述子集中被外部数据调用的RedisKey。优选地,所述删除单元采用Redis的pipeline方式来批量删除Rediskey。如上所述,本专利技术的一种RedisKey管理方法及系统,具有以下有益效果:1、本专利技术将同一个业务中的,位于同一分区中的RedisKey使用数据桶(Keybucket)进行保存,可以根据业务标识以及分区定位数据桶,对同一个数据桶内的RedisKey进行去重处理以供外部数据调用并对外部数据调用后的RedisKey进行批量删除,有效对Redis中Key进行管控,快速查找到所需的RedisKey本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201510750902.html" title="一种Redis Key管理方法及系统原文来自X技术">Redis Key管理方法及系统</a>

【技术保护点】
一种Redis Key管理方法,用于对流式框架中同一个业务产生的Redis Key的管理控制过程中,其特征在于:所述Redis Key管理方法包括:将相同业务产生的Redis Key封装后保存至同一个数据桶内;对同一个数据桶内的Redis Key进行去重处理以供外部数据调用;对外部数据调用后的Redis Key进行批量删除。

【技术特征摘要】
1.一种RedisKey管理方法,用于对流式框架中同一个业务产生的RedisKey的管理控制过程中,其特征在于:所述RedisKey管理方法包括:将相同业务产生的RedisKey封装后保存至同一个数据桶内;对同一个数据桶内的RedisKey进行去重处理以供外部数据调用;对外部数据调用后的RedisKey进行批量删除。2.根据权利要求1所述的RedisKey管理方法,其特征在于:以去重集合的数据类型将相同业务产生的RedisKey封装后保存至同一个数据桶内。3.根据权利要求1或2所述的RedisKey管理方法,其特征在于:所述对同一个数据桶内的RedisKey进行去重处理以供外部数据调用具体包括:定时从所述数据桶内分割出包含预设个数的RedisKey的子集;对分割出的各所述子集进行去重处理,使得各所述子集中不存在重复的RedisKey;对去重处理后的子集进行标记以供外部数据调用。4.根据权利要求3所述的RedisKey管理方法,其特征在于:利用lua脚本编程实现从所述数据桶内分割出包含预设个数的RedisKey的子集并对分割出的各所述子集进行去重处理,使得各所述子集中不存在重复的RedisKey;每次在达到预设的去重的间隔时间时,执行所述lua脚本。5.根据权利要求3所述的RedisKey管理方法,其特征在于:所述对外部数据调用后的RedisKey进行批量删除具体包括:记录标记的所述子集中被外部数据调用的RedisKey;定时判断所述子集中所包含的RedisKey是否全部被外部数据调用过,并在所述子集中包含的RedisKey全部被外部数据调用过时,删除所述子集中的所有RedisKey。6.根据权利要求5所述的RedisKey管理方法,其特征在于:所述对外部数据调用后的RedisKey进行批量删除进一步包括:每次在达到预设的删除的间隔时间时,确定所述子集是否为预先标记的可删除状态,若是则进一步确定所述子集的长度值,在所述子集的长度值为零或所述子集的长度值与预先记录的所述子集中被外部数据调用的RedisKey的个数值相等时,删除所述子集中的所有RedisKey。7.根据权利要求5或6所述的RedisKey管理方法,其特征在于:以数组形式记录标记的所述子集中被外部数据调用的RedisKey。8.根据权利要求7所述的RedisKey管理方法,其特征在于:采用Redis的pipeline方式来批量删除Rediskey。9.一种RedisKey管理系统,用于对流式框架中同一个业务产生的RedisKey的管理控制过程中,其特征在于:所述RedisKey管理系统包括:数据桶保存模块,用于将相同业务产生的RedisKey封装后保存至同一个数据桶内;数据去重模块,与所述数据桶保存模块相连,用于对同一个数据桶内的Redis...

【专利技术属性】
技术研发人员:洪珂柳阳彬陈影旺李瑜婷
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:上海,31

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

1