Redis数据库分析方法、装置、电子设备及存储介质与流程
未命名
08-15
阅读:113
评论:0
redis数据库分析方法、装置、电子设备及存储介质技术领域:
:1.本发明涉及数据库
技术领域:
:,特别是涉及一种redis数据库分析方法、装置、电子设备及存储介质。
背景技术:
::2.redis(remotedictionaryserver,远程字典服务)是一个key-value数据库,其使用情况在业务过程是非常重要的内容,例如,redis运行久了,内部经常会堆积些冗余数据,或者redis不合理的使用也会导致内存的占用,而为了优化内存等,分析redis的使用情况是非常重要的,如确定内存变化情况等。技术实现要素:3.本发明实施例的目的在于提供一种redis数据库分析方法、装置、电子设备及存储介质,以提高对redis分析的效率。具体技术方案如下:4.第一方面,本发明实施例提供了一种redis数据库分析方法,包括:5.获得redis的rdb文件所对应的csv文件,所述csv文件中每一行分别包括一key信息;6.根据多个特征表达式构建前缀树;7.利用所述csv文件中每行的key,将所述key与所述前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;8.针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果。9.可选地,在所述针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果之后,所述方法还包括:10.展示各特征表达式的统计结果。11.可选地,所述方法还包括:12.比较不同时间范围内各特征表达式的统计结果之间的差异,得到各特征表达式的内存变化情况。13.可选地,所述展示各特征表达式的统计结果,包括:14.接收针对时间范围的选择指令;15.展示所述时间范围内各特征表达式的统计结果。16.可选地,所述获得所述redis的rdb文件所对应的csv文件,包括:17.周期性地运行用于触发获得所述redis的rdb文件所对应的csv文件的任务。18.可选地,所述获得所述redis的rdb文件所对应的csv文件,包括:19.针对所述redis执行bgsave命令,生成所述redis的rdb文件;20.针对所述rdb文件,执行golang分析任务,生成所述redis的rdb文件所对应的csv文件。21.第二方面,本发明实施提供了一种redis数据库分析装置,包括:22.获得模块,用于获得redis的rdb文件所对应的csv文件,所述csv文件中每一行分别包括一key信息;23.构建模块,用于根据多个特征表达式构建前缀树;24.匹配模块,用于利用所述csv文件中每行的key,将所述key与所述前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;25.统计模块,用于针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果。26.可选地,所述装置还包括:27.展示模块,用于在所述针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果之后,展示各特征表达式的统计结果。28.可选地,所述装置还包括:29.比较模块,用于比较不同时间范围内各特征表达式的统计结果之间的差异,得到各特征表达式的内存变化情况。30.可选地,所述展示模块,具体用于接收针对时间范围的选择指令;展示所述时间范围内各特征表达式的统计结果。31.可选地,所述获得模块,具体用于周期性地运行用于触发获得所述redis的rdb文件所对应的csv文件的任务。32.可选地,所述获得模块,具体用于针对所述redis执行bgsave命令,生成所述redis的rdb文件;针对所述rdb文件,执行golang分析任务,生成所述redis的rdb文件所对应的csv文件。33.第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;34.存储器,用于存放计算机程序;35.处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。36.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。37.本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的redis分析方法。38.本发明实施例有益效果:39.本发明实施例中,通过将csv文件中每行的key,与根据多个特征表达式构建的前缀树进行匹配,前缀树中不同的分支对应不同的特征表达式,每行的key与前缀树进行匹配时,仅需与前缀树中的一分支进行匹配,即可确定每一行分别对应的前缀树叶子节点,进而针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果,以实现的redis中key信息的统计,如此,可以提高对redis分析的效率。另外,还可以降低对redis分析的复杂度,缩短运行时间,降低对实时性的影响。40.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。42.图1-1为本发明实施例提供的redis数据库分析方法的一种流程图;43.图1-2为本发明实施例提供的redis数据库分析方法的另一种流程图;44.图2为本发明实施例中白名单列表的示意图;45.图3为本发明实施例中构建的前缀树的示意图;46.图4为本发明实施例中展示统计结果的示意图;47.图5为本发明实施例提供的redis数据库分析装置的结构示意图;48.图6为本发明实施例提供的电子设备的结构示意图。具体实施方式49.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。50.redis执行bgsave命令可以生成rdb文件,rdb为redis数据集的时间点快照,rdb文件可用于数据的备份和恢复;解析rdb文件,生成特定格式csv(comma-separatedvalues,逗号分隔值)文件;其中,每行代表一个key的特征,为了进一步满足业务需求,如果需要进一步分析某部分key/某些key的集合的特征,这些key都有相同特征,如前缀相同、或者匹配某些正则表达式;这里就是白名单列表中的一个元素,而白名单就是这些元素的集合,则需要在上面两步骤后再执行以下环节:遍历csv每行数据,并且针对白名单列表里面的每个表达式。即相关技术中rdb分析工具通过python脚本解析rdb文件、生成特定格式csv文件,同时针对csv进行按行统计分析。具体地,针对redisbgsave命令生成rdb文件,并解析rdb文件,生成特定格式csv文件,csv文件中每行代表一个key的特征,然后,将利用一行中的key分别与白名单列表里面的每个特征表达式进行比对,以确定每一key所匹配的特征表达式,进而,统计与每一特征表达式对应的所有key的特征信息,以分析特征表达式的内存使用情况。可以看出,针对每一行中的key均需要与白名单列表中每个表达式分析进行比对进而才能得到内存使用情况,使得对redis分析的效率较低。另,复杂度较高,运行时间较长,进而还会影响实时性。51.本发明实施例提供了一种redis数据库分析方法,可以提高对redis分析的效率。另外,还可以降低对redis分析的复杂度,缩短运行时间,降低对实时性的影响。下面对本发明实施例提供的redis分析方法进行详细说明。52.本发明实施例提供了一种redis数据库分析方法,可以包括:53.获得redis的rdb文件所对应的csv文件,csv文件中每一行分别包括一key信息;54.根据多个特征表达式构建前缀树;55.利用csv文件中每行的key,将key与前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;56.针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果,统计结果包括内存占用。57.本发明实施例中,通过将csv文件中每行的key,与根据多个特征表达式构建的前缀树进行匹配,前缀树中不同的分支对应不同的特征表达式,每行的key与前缀树进行匹配时,仅需与前缀树中的一分支进行匹配,即可确定每一行分别对应的前缀树叶子节点,进而针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果,以实现的redis中key信息的统计,如此,可以提高对redis分析的效率。另外,还可以降低对redis分析的复杂度,缩短运行时间,降低对实时性的影响。58.图1-1为本发明实施例提供的redis数据库分析方法的流程图,参照图1-1,本发明实施例提供的redis数据库分析方法可以包括:59.s101,获得redis的rdb文件所对应的csv文件。60.csv文件中每一行分别包括一key信息。61.key信息可以包括数据库名称、类型、key的名称、占用内存、编码方式、元素个数、最大元素所占字节、是否有过期时间。62.例如,每个csv行格式如下:63.【database,type,key,size_in_bytes,encoding,num_elements,len_largest_element】64.其中,database表示数据库名称;type表示类型,如列表、集合、有序集合、hash、string等;key也即key的名称;size_in_bytes表示占用内存;encoding表示编码方式,每个类型有一种或几种编码方式,主要体现在是以什么样的数据结构实现的;num_elements表示元素个数,比如类型为集合set类型,num_elements表示一共有多少个元素在里面;len_largest_element表示最大元素所占字节,如集合里面最大的一个元素占用多大字节。65.一个例子中,csv文件如表1所示,其中,以逗号隔开的第3列表示key的名称,也即key值:66.表167.0,hash,fine:model,rank_giftrank_hash_6898_sender_value_1514656846445622017,173,1,168558339339960,string,fine:model:rank_watch_1ast_watch_time_vid_1558320371362507777_vid_16804001293746866251,168,8,16810093198210,string,fine:model:rank_walker_song_user_voucher_num_act_id_4074_vid_1058365935401967616_effect,136.8,0...68.需要说明的是,这里仅是为了举例,实际业务过程得到csv文件可能会包括更多行。69.一种可实现方式中,可以针对redis执行bgsave命令,生成redis的rdb文件;针对rdb文件,执行golang分析任务,生成redis的rdb文件所对应的csv文件。70.rdb文件即redis数据集的时间点快照,rdb文件可用于数据的备份和恢复。71.bgsave命令采用异步方式生成快照,redis通过子进程进行rdb文件的生成。72.一种可实现方式中,获得redis的rdb文件所对应的csv文件,可以包括:73.周期性地运行用于触发获得redis的rdb文件所对应的csv文件的任务。74.例如,每天定时执行该任务,以获得redis的rdb文件所对应的csv文件。75.s102,根据多个特征表达式构建前缀树。76.特征表达式可以理解为待分析的key或者key的集合,如待分析多个key的内存使用情况。77.例如,待分析某部分key/某些key的集合的特征,这些key都有相同特征,如前缀相同、或者匹配某些正则表达式,则这些key可以构成特征表达式,多个key可以理解构成待分析的多个特征表达式。78.一种可实现方式中,可以将待分析的多个特征表达式构成一白名单列表,该白名但列表中的一个元素即可以理解为一个特征表达式,对多个特征表达式构建前缀树,也即对白名单列表构建前缀树。79.例如,白名单列表如图2所示,每一行包括一特征表达式^act:thanos:.*、^data:center:.*、^act:system:.*、^fine:activity:comdraw_.*以及^live:activity:.*,以及该特征表达式的在线状态,如“online”。80.trie即前缀树、字典树,是一种有序树,用于保存关联数组。81.具体地对多个特征表达式构建前缀树可以包括:从根节点开始,将特征表达式中包括的各字符串按顺序插入前缀树,特征表达式中字符串通过间隔符号划分,例如,^act:thanos:.*中包括act和thanos两个字符串,先插入根节点,从根节点开始查找是否有act对应的子节点,如果没有,则插入act对应的子节点,再插入thanos对应的子节点作为act对应的子节点的子节点,如此类推,直至将特征表达式中最后一个字符串插入前缀树,且特征表达式中最后一个字符串对应的节点即前缀树叶子节点。82.例如,白名单列表中包括特征表达式:^act:thanos:.*、^data:center:.*、^act:system:.*以及^live:activity:.*,构建得到如图3所示前缀树。83.s103,利用csv文件中每行的key,将key与前缀树进行匹配,得到每一行分别对应的前缀树叶子节点。84.每一前缀树叶子节点对应一个特征表达式。85.csv文件中每一行分别包括一key信息,该key信息中除key的名称之外的信息即可以理解为该key的名称对应的value值。针对每一行,取该行中的key,具体可以是key的名称,利用该key的名称遍历前缀树,具体可以按字符依次匹配直至前缀树叶子节点。86.例如,csv文件中第1行为act:thanos:num_1,num_1为act:thanos对应的key信息,也可以理解为value值;csv文件中第2行为act:thanos:num_2,num_2为act:thanos对应的key信息,也可以理解为value值;csv文件中第3行为act:system:num_3,num_3为act:system对应的key信息,也可以理解为value值。87.将第1行中key:act:thanos与图2所示前缀树匹配,确定该行对应的前缀树叶子节点为thanos对应的节点;将第2行中key:act:thanos与图2所示前缀树匹配,确定该行对应的前缀树叶子节点为thanos对应的节点;将第3行中key:act:system与图2所示前缀树匹配,确定该行对应的前缀树叶子节点为system对应的节点。88.s104,针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果。89.可以对统计与前缀树叶子节点对应的所有行所对应的key信息的统计结果保存至该对应的前缀树叶子节点中。90.每个特征表达式可以对应有多行的key信息,遍历完前缀树后,会对相同表达式的key的key信息进行累加,以汇总数据。91.例如,上述第1行与第2行对应的前缀树叶子节点均为thanos对应的节点,则针对该thanos对应的节点,将第1行与第2行对应的key信息,也即value值进行累加,thanos对应的节点得到的统计结果即为act:thanos的统计结果;将第3行对应的key信息即为system对应的节点的统计结果,也即act:system的统计结果。92.统计结果可以包括内存占用。93.一种可实现方式中,每一特征表达式的统计结果还可以包括特征表达式对应的元素类型以及元素个数。即统计结果包括特征表达式对应的元素类型、元素个数以及内存占用。94.例如,统计结果中每个行条目如下:【白名单中特征表达式、元素类型、元素个数、元素大小】,其中元素大小即可以理解为内存占用,如占用内存多少字节。95.将特征表达式的统计结果进行保存,如保存至缓存中。96.一种可选地实施例中,如图1-2所示,在s104之后,还可以包括:97.s105,展示各特征表达式的统计结果。98.也即从白名单列表中各特征表达式维度展示统计结果。99.一种可实现方式中,可以接收针对时间范围的选择指令;展示时间范围内各特征表达式的统计结果。100.时间范围可以根据实际需求确定。例如,选择某一日期,则展示该日期内统计的各特征表达式的统计结果。101.查看某个特定日期的统计,即可得到白名单列表中各特征表达式的使用情况,即内存占用大小、元素个数、元素类型等。102.一种可选地实施例中,本发明实施例提供的redis分析方法还可以包括:103.比较不同时间范围内各特征表达式的统计结果之间的差异,得到各特征表达式的内存变化情况。104.另外,还可以展示各特征表达式的内存变化情况,且可以将各特征表达式的内存变化情况进行累加,并展示各特征表达式的内存变化情况的累加值。105.具体地,内存变化情况可以包括数值的变化以及上升百分比、下降百分比等等。106.例如,对比不同日期之间的统计差异即可得知每个白名单的内存上涨情况。107.每天都存有一份数据快照,相当于一个点;一段时间其实可以连接成线,看出整体内存的使用情况:分析出哪些key的内存占用在不断发生变化(升高/降低),进而可以辅助判断redis内存变化原因,是由哪些key异常变化导致升高、降低等。另外,当机器容量已知的情况下,还可以判断是否需要扩容、缩容,例如,内存使用升高可以进行扩容,而内存使用降低则可以缩容。108.例如,可以通过如图4所示展示页面,选择不同日期2023-4-4以及2023-4-3,展示2023-4-4相较于2023-4-3的内存变化情况,例如,对于keypattern,也即上述特征表达式对应的统计结果count(元素个数)和size(元素大小)以及count对应的上升百分比countpercentage、size对应的上升百分比sizepercentage,另外,还可以展示所有特征表达式的统计结果的累加值,如展示table:all对应的count以及size,count表示所有特征表达式对应的元素个数的累加值,size所有特征表达式对应的元素大小的累加值。109.相关技术中rdb分析工具是通过python脚本解析rdb文件、生成特定格式csv文件,同时针对csv进行按行统计分析,但会存在运行时间较长,缺乏实时性;无法统计、预估内存用量的趋势的缺点。110.本发明实施例提供的redis分析方法基于trie实现redis的rdb分析,统计redis内存key分布、内存上涨情况等。111.第一步:redisslave((从))机器上执行bgsave命令,生成rdb文件;112.具体地,bgsave命令采用异步方式生成快照,可以通过子进程进行rdb文件的生成。113.第二步:针对上文生成的rdb文件,执行golang分析任务,生成特定格式的csv文件;114.每个csv行格式如下:115.【database,type,key,size_in_bytes,encoding,num_elements,len_largest_element】。116.第三步:针对上述生成的csv文件,基于白名单的trie匹配原则,生成每个白名单条目的统计信息,每个行条目如下:【白名单、元素类型、元素个数、元素大小】;117.白名单列表中包括的多个特征表达式可以理解为多个白名单,根据多个特征表达式构建前缀树,利用csv文件中每行的key,将key与前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果,即可以理解为基于白名单的trie匹配原则,生成每个白名单条目的统计信息。118.根据白名单列表(不同特征的表达式集合)构建一个前缀树(trie树),csv中的每行元素(取其中key字段),遍历前缀树,如果匹配成功即在对应树的叶子节点上记录一次有效数据,最终前缀树的所有叶子节点里面汇聚、累计了所有的统计数据。简单理解,通过前缀树将多行中相同key的key信息进行统计。由于每次只需遍历前缀树的一个分支,复杂度降低、效率提升,执行速度加快。119.第四步:针对上述生成的白名单统计,根据日期保存到缓存中;120.也即按日期将特征表达式的统计结果保存至缓存中。121.第五步:查看某个特定日期的统计,即可得到每个白名单的使用情况,即内存占用大小、元素个数、元素类型等;122.如按日期查看某个日期的各特征表达式的统计结果,也即每个白名单的使用情况。123.第六步:对比不同日期之间的统计差异即可得知每个白名单的内存变化情况。124.内存变化情况如内存上涨情况、内存下降情况。125.通过将csv文件中每行的key,与根据多个特征表达式构建的前缀树进行匹配,前缀树中不同的分支对应不同的特征表达式,每行的key与前缀树进行匹配时,仅需与前缀树中的一分支进行匹配,即可确定每一行分别对应的前缀树叶子节点,进而针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果,以实现的redis中key信息的统计,如此,可以提高对redis分析的效率。另外,还可以降低对redis分析的复杂度,缩短运行时间,降低对实时性的影响。126.一个例子中,可以通过本发明实施例提供的redis分析方法分析线上集群的内存使用情况,具体可以包括如下步骤:127.第一步:部署aws(业务流程管理开发平台)环境下部署lambda定时任务,每天固定时间运行golang分析工具;128.第二步:通过该golang分析工具依次执行rdb生成、csv临时文件生成、统计结果保存;129.golang分析工具用于触发获得redis的rdb文件所对应的csv文件的任务,如此依次执行rdb生成、csv临时文件生成、统计结果保存,具体地,执行上述s101至s104。130.利用golang语言自身是编译型语言,提高执行速度。131.第三步:通过展示平台,查询不同日期之间的内存使用差异,如key数量上涨情况、内存整体使用情况等。132.根据上述结果,可以辅助判断到redis内存变化原因,如是由哪些key异常变化导致升高、降低等。133.本发明实施例提供的redis数据库分析方法基于前缀树进行匹配,优化计算方案,提升分析速度,可以高效分析rdb文件,用以判断redis内存使用情况。另利用前缀树进行数据存储,前缀树叶子节点累计相同特征表达式的统计结果,可以优化数据存储。且保存每次分析数据,方便对比分析及趋势判断。134.基于与上述redis数据库分析方法相同的发明构思,本发明实施例还提供了一种redis数据库分析装置,如图5所示,包括:135.获得模块501,用于获得redis的rdb文件所对应的csv文件,csv文件中每一行分别包括一key信息;136.构建模块502,用于根据多个特征表达式构建前缀树;137.匹配模块503,用于利用csv文件中每行的key,将key与前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;138.统计模块504,用于针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果。139.可选地,装置还包括:140.展示模块,用于在针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果之后,展示各特征表达式的统计结果。141.可选地,装置还包括:142.比较模块,用于比较不同时间范围内各特征表达式的统计结果之间的差异,得到各特征表达式的内存变化情况。143.可选地,展示模块,具体用于接收针对时间范围的选择指令;展示时间范围内各特征表达式的统计结果。144.可选地,获得模块501,具体用于周期性地运行用于触发获得redis的rdb文件所对应的csv文件的任务。145.可选地,获得模块501,具体用于针对redis执行bgsave命令,生成redis的rdb文件;针对rdb文件,执行golang分析任务,生成redis的rdb文件所对应的csv文件。146.本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;147.存储器603,用于存放计算机程序;148.处理器601,用于执行存储器603上所存放的程序时,实现上述redis数据库分析方法的方法步骤。149.上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。150.通信接口用于上述电子设备与其他设备之间的通信。151.存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。152.上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。153.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一redis数据库分析方法的步骤。154.在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一redis数据库分析方法。155.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。156.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。157.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。158.以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
技术特征:
1.一种redis数据库分析方法,其特征在于,包括:获得redis的rdb文件所对应的csv文件,所述csv文件中每一行分别包括一key信息;根据多个特征表达式构建前缀树;利用所述csv文件中每行的key,将所述key与所述前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果。2.根据权利要求1所述的方法,其特征在于,在所述针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果之后,所述方法还包括:展示各特征表达式的统计结果。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:比较不同时间范围内各特征表达式的统计结果之间的差异,得到各特征表达式的内存变化情况。4.根据权利要求1所述的方法,其特征在于,所述展示各特征表达式的统计结果,包括:接收针对时间范围的选择指令;展示所述时间范围内各特征表达式的统计结果。5.根据权利要求1所述的方法,其特征在于,所述获得所述redis的rdb文件所对应的csv文件,包括:周期性地运行用于触发获得所述redis的rdb文件所对应的csv文件的任务。6.根据权利要求1所述的方法,其特征在于,所述获得所述redis的rdb文件所对应的csv文件,包括:针对所述redis执行bgsave命令,生成所述redis的rdb文件;针对所述rdb文件,执行golang分析任务,生成所述redis的rdb文件所对应的csv文件。7.一种redis数据库分析装置,其特征在于,包括:获得模块,用于获得redis的rdb文件所对应的csv文件,所述csv文件中每一行分别包括一key信息;构建模块,用于根据多个特征表达式构建前缀树;匹配模块,用于利用所述csv文件中每行的key,将所述key与所述前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;统计模块,用于针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果。8.根据权利要求7所述的装置,其特征在于,所述装置还包括:展示模块,用于在所述针对每一前缀树叶子节点,统计与所述前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为所述前缀树叶子节点对应的特征表达式的统计结果之后,展示各特征表达式的统计结果。9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一所述的方法步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一所述的方法步骤。
技术总结
本发明实施例提供了一种Redis数据库分析方法、装置、电子设备及存储介质,涉及数据库技术领域,包括:获得Redis的rdb文件所对应的csv文件;根据多个特征表达式构建前缀树;利用csv文件中每行的key,将key与前缀树进行匹配,得到每一行分别对应的前缀树叶子节点,每一前缀树叶子节点对应一个特征表达式;针对每一前缀树叶子节点,统计与前缀树叶子节点对应的所有行所对应的key信息,并将统计结果作为前缀树叶子节点对应的特征表达式的统计结果。通过本发明实施例提供的Redis数据库分析方法、装置、电子设备及存储介质提高对Redis分析的效率。电子设备及存储介质提高对Redis分析的效率。电子设备及存储介质提高对Redis分析的效率。
技术研发人员:张继元
受保护的技术使用者:北京乐我无限科技有限责任公司
技术研发日:2023.05.05
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:数码无版模切机的制作方法 下一篇:一种无线型智慧管廊监控设备的制作方法
