【技术实现步骤摘要】
一种基于Redis的大Key处理方法及装置
[0001]本申请涉及数据处理
,尤其涉及一种基于Redis的大Key处理方法及装置。
技术介绍
[0002]Redis是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。通常我们会将含有较大数据或含有大量成员、列表数的Key称之为大Key,在Redis的使用中,大Key及热Key会给Redis带来各种各样的问题,而最常见的问题为性能下降、访问超时、数据不均衡等。
[0003]为了解决大Key带来的问题,需要先能够识别哪些Key是大Key。Redis有一些内置命令可以用来识别大Key;比如可以使用debug object命令对特定的Key进行分析。该命令能够根据传入的对象(Key的名称)来对Key进行分析并返回大量数据,其中serializedlength的值为该Key的序列化长度,可以选择通过该数据来判断对应Key是否符合你的大Key判定标准,但是这个命令有两个缺陷:一是只能针对特定的Key进行分析,无法对于系统中所有的大Ke ...
【技术保护点】
【技术特征摘要】
1.一种基于Redis的大Key处理方法,其特征在于,所述方法包括:在Redis运行时,响应于数据写入请求,对当前写入数据进行判断处理,当所述当前写入数据满足预设的大Key条件时,将所述当前写入数据的大Key写入预设的大Key列表中,同时将所述当前写入数据进行存储;基于所述大Key列表,对Redis中存储的数据进行处理。2.根据权利要求1所述的方法,其特征在于,所述将所述当前写入数据的大Key写入预设的大Key列表中,包括:将该大Key的Key作为写入的目标键,以及将该大Key的Value的大小作为写入的目标值构成键值对;将所述键值对写入预设的所述大Key列表中。3.根据权利要求1所述的方法,其特征在于,所述将所述当前写入数据的大Key写入预设的大Key列表中时,所述方法还包括:针对被写入预设的所述大Key列表中的大Key,设置过期时间,其中,所述过期时间表示该大Key在所述大Key列表中的有效时间,将所述当前写入数据的大Key写入预设的大Key列表中与针对被写入预设的所述大Key列表中的大Key,设置过期时间为异步操作或同步操作。4.根据权利要求2所述的方法,其特征在于,所述基于所述大Key列表,对Redis中存储的数据进行处理,包括:对所述大Key列表中的大Key进行降/升序排列,其中,所述降/升序排列基于每个大Key的Value的大小;对降/升序排列后的大Key进行监控,以及基于降/升序排列后的大Key进行优化调整处理。5.根据权利要求2所述的方法,其特征在于,所述基于所述大Key列表,对Redis中存储的数据进行处理,包括:响应于槽迁移请求,对于需要进行槽迁移请求的目标Key,判断所述目标Key是否存在于所述大Key列表,若所述目标Key存在于所述大Key列表,读取所述大Key列表中与所述目标Key对应的所述目标值,并将所述目标值保存在内存中;基于...
【专利技术属性】
技术研发人员:赵晓璐,
申请(专利权)人:北京凌云雀科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。