一种基于Redis集群的KEY前缀操作键值方法技术

技术编号:38385538 阅读:17 留言:0更新日期:2023-08-05 17:41
本发明专利技术提出一种基于Redis集群的KEY前缀操作键值方法,包括:使用端通过访问命令向Redis发起操作请求;Redis接收到命令请求后进行参数有效性校验;Redis根据指定的槽位和KEY前缀来查找KEY槽位索引;Redis将查找到的KEY按操作请求进行处理;Redis根据处理策略继续下个槽位的处理;Redis将命令请求处理结果返回给使用端;使用端进行迭代操作KEY直至全部处理完成。本发明专利技术避免了对全量KEY进行查询比较;对于按前缀统计、删除操作能够直接完成请求处理,避免跟使用者之间的大量数据交互;按槽位迭代命令方式,能够避免对Redis服务的阻塞,保障服务稳定性。保障服务稳定性。保障服务稳定性。

【技术实现步骤摘要】
一种基于Redis集群的KEY前缀操作键值方法


[0001]本专利技术涉及分布式缓存领域,具体涉及一种基于Redis集群的KEY前缀操作键值方法。

技术介绍

[0002]随着大数据和云计算的发展,分布式系统越来越普遍。Redis作为一种高性能的键值(Key

Value)存储系统,因其丰富的数据类型以及按KEY名称高效的访问能力,已被广泛应用在分布式缓存集群中。
[0003]在Redis中,使用Hash数据结构来构建KEY索引,通过KEY名称可以精确匹配快速检索到VALUE数据,但这种无序离散的数据结构并不适合进行按KEY前缀的范围查找。因此,对于需要按KEY前缀进行的统计分析类操作,Redis并不擅长。
[0004]例如,若需按KEY前缀进行数据删除,当前的方法主要是通过KEYS或SCAN命令进行全量数据扫描匹配得到精确的KEY列表,然后通过DEL或UNLINK命令进行删除。但此过程的耗时受Redis中存储数据量的影响极大,并且会对Redis服务质量产生影响,增大系统的CPU、网络等资源占用。
[0005]因此,如何在不影响Redis服务质量的前提下,高效地按KEY前缀进行统计、查询、删除等操作,成为了亟待解决的问题。

技术实现思路

[0006]为克服现有技术的不足,本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,通过Reids集群KEY槽位索引能够快速地按KEY前缀定位到相关KEY,避免对全量KEY进行查询比较;对于按前缀统计、删除操作能够直接完成请求处理,避免跟使用者之间的大量数据交互;按槽位迭代命令方式,能够避免对Redis服务的阻塞,保障服务稳定性。
[0007]为实现上述目的,本专利技术提出一种基于Redis集群的KEY前缀操作键值方法,该方法包括以下步骤:步骤S1:使用端通过KEY前缀访问命令向Redis发起操作请求;步骤S2:Redis接收到命令请求后进行参数的有效性校验;步骤S3:Redis根据指定的槽位和KEY前缀来查找KEY槽位索引;步骤S4:Redis将查找到的KEY按操作请求进行处理;步骤S5:Redis根据处理策略继续下个槽位的处理;步骤S6:Redis将命令请求处理结果返回给使用端;步骤S7:使用端进行迭代操作KEY直至全部处理完成。
[0008]进一步地,步骤S2具体为:步骤S21:根据输入的槽位参数值检查是否为有效的槽位值;步骤S22:根据输入的KEY前缀检查参数是否有效;步骤S23:检查当前Redis实例是否处于集群模式;
步骤S24:当请求命令为按前缀删除数据时,检查当前Redis实例是否为主节点。
[0009]进一步地,步骤S3具体为:步骤S31:根据当前Redis所拥有的槽位来校正传入的槽位值;步骤S32:基于槽位和KEY前缀查找KEY槽位索引获取匹配KEY。
[0010]进一步地,步骤S4具体为:步骤S41:对于按前缀统计请求进行KEY数量累计处理;步骤S42:对于按前缀查询请求将查询到的KEY存储至返回列表中;步骤S43:对于按前缀删除请求将删除查询到的KEY,并累计删除数量。
[0011]进一步地,步骤S5具体为:步骤S51:当前处理槽位加1,准备继续迭代处理;步骤S52:根据处理策略检查是否满足继续迭代处理条件;步骤S521:满足条件则继续步骤S3处理;步骤S522:不满足则停止此次命令迭代处理。
[0012]进一步地,步骤S6中所述命令请求处理结果包含下次继续迭代请求的槽位值和此次按前缀操作结果,具体步骤为:步骤S61:当前处理槽位超过最大值时校正槽位值为0;步骤S62:对于按前缀统计请求返回当前处理槽位值和匹配的KEY数量;步骤S63:对于按前缀查询请求返回当前处理槽位值和匹配的KEY列表;步骤S64:对于按前缀删除请求返回当前处理槽位值和删除的KEY数量。
[0013]进一步地,还包括自动阈值调整机制,步骤如下:步骤S101:初始化阈值;步骤S201:启动监控任务;步骤S301:获取资源使用率;步骤S401:计算新阈值;步骤S501:应用新阈值;步骤S601: 阈值调整反馈。
[0014]进一步地,还包括日志机制,步骤如下:步骤S102:初始化日志系统;步骤S202:定义日志格式;步骤S302:记录操作开始日志;步骤S402:记录操作结束日志;步骤S502:异步写入日志;步骤S602:日志维护。
[0015]进一步地,其特征在于,步骤S4中所述操作请求支持按前缀统计、按前缀查询、按前缀删除三种命令操作。
[0016]进一步地,步骤S7中所述继续迭代操作其他槽位可通过上次执行返回的槽位值再次发起请求,如果返回的槽位值为0表示全部迭代完成,具体步骤为:步骤S71:利用槽位和KEY前缀组合条件来查询索引,步骤S72:对于按前缀统计请求返回结果中包含匹配的KEY数量,
步骤S73:对于按前缀查询请求返回结果中包含匹配的KEY列表,步骤S74:对于按前缀删除请求返回结果中包含删除的KEY数量,步骤S75:返回结果中槽位值为0,表示槽位遍历完成;否则可继续下个槽位的请求处理。
[0017]与现有技术相比,本专利技术的有益效果是:1.本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,通过Reids集群KEY槽位索引能够快速地按KEY前缀定位到相关KEY,避免对全量KEY进行查询比较;2.本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,对于按前缀统计、删除操作能够直接完成请求处理,避免跟使用者之间的大量数据交互;3.本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,按槽位迭代命令方式,能够避免对Redis服务的阻塞,保障服务稳定性;4.本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,通过日志机制,可以对操作请求的执行情况进行详细的记录和跟踪,方便后续的问题排查和性能优化;5.本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,通过这个自动阈值调整机制,可以根据Redis实例的实际资源使用情况,动态调整操作请求的执行时间和处理的键值数量,既可以保证Redis服务的稳定性,又可以提高处理性能;6.本专利技术提供一种基于Redis集群的KEY前缀操作键值方法,通过处理策略能够避免长时间阻塞Redis服务,保障服务的稳定性,同时又兼顾处理性能,减少使用者跟Redis的交互次数。
附图说明
[0018]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019]图1是根据本专利技术实施例的基于Redis集群KEY槽位索引技术实现按KEY前缀操作的方法流程图;图2是根据本专利技术实施例的应用按KEY前缀删除3节点Redis集群的操作时序图。
具体实施方式
[0020]下面将结合附本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Redis集群的KEY前缀操作键值方法,其特征在于,该方法包括以下步骤:步骤S1:使用端通过KEY前缀访问命令向Redis发起操作请求;步骤S2:Redis接收到命令请求后进行参数的有效性校验;步骤S3:Redis根据指定的槽位和KEY前缀来查找KEY槽位索引;步骤S4:Redis将查找到的KEY按操作请求进行处理;步骤S5:Redis根据处理策略继续下个槽位的处理;步骤S6:Redis将命令请求处理结果返回给使用端;步骤S7:使用端进行迭代操作KEY直至全部处理完成。2.根据权利要求1所述的一种基于Redis集群的KEY前缀操作键值方法,其特征在于,步骤S2具体为:步骤S21:根据输入的槽位参数值检查是否为有效的槽位值;步骤S22:根据输入的KEY前缀检查参数是否有效;步骤S23:检查当前Redis实例是否处于集群模式;步骤S24:当请求命令为按前缀删除数据时,检查当前Redis实例是否为主节点。3.根据权利要求1所述的一种基于Redis集群的KEY前缀操作键值方法,其特征在于,步骤S3具体为:步骤S31:根据当前Redis所拥有的槽位来校正传入的槽位值;步骤S32:基于槽位和KEY前缀查找KEY槽位索引获取匹配KEY。4.根据权利要求1所述的一种基于Redis集群的KEY前缀操作键值方法,其特征在于,步骤S4具体为:步骤S41:对于按前缀统计请求进行KEY数量累计处理;步骤S42:对于按前缀查询请求将查询到的KEY存储至返回列表中;步骤S43:对于按前缀删除请求将删除查询到的KEY,并累计删除数量。5.根据权利要求1所述的一种基于Redis集群的KEY前缀操作键值方法,其特征在于,步骤S5具体为:步骤S51:当前处理槽位加1,准备继续迭代处理;步骤S52:根据处理策略检查是否满足继续迭代处理条件;步骤S521:满足条件则继续步骤S3处理;步骤S522:不满足则停止此次命令迭代处理。6.根据权利要求1所述的一种基于Red...

【专利技术属性】
技术研发人员:罗剑锋于光杰刘启铨曾力耕
申请(专利权)人:浩鲸云计算科技股份有限公司
类型:发明
国别省市:

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

1