一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据缓存方法、装置、电子设备及存储介质与流程

2022-05-18 02:42:35 来源:中国专利 TAG:

1.本技术涉及移动通信
技术领域
,特别是涉及一种数据缓存方法、装置、电子设备及存储介质。
背景技术
:2.在现有的业务统计数据中,通常需要对实时数据进行分钟级的分层次统计,如计费业务分钟级的分接口总调用次数,分接口-分省总调用次数,分接口-分省-分状态的总调用次数,分接口-分省-分状态-分响应时间的调用次数等。3.然而,部分统计数据量级会根据业务指标的维度增加成正比增长,此时,势必会造成业务数据写入速度较慢,内存占用量高,且查询效率较低。技术实现要素:4.本技术提供一种数据缓存方法、装置、电子设备及存储介质,以解决部分统计数据量级会根据业务指标的维度增加成正比增长,势必会造成业务数据写入速度较慢,内存占用量高,且查询效率较低的问题。5.为了解决上述问题,本技术实施例是这样实现的:6.第一方面,本技术实施例提供了一种数据缓存方法,包括:7.创建目标业务流程对应的设定位数的位图文件;8.对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成所述位图文件的bit位,并将所述bit位写入所述位图文件;9.在产生所述目标业务流程下的业务数据之后,将所述业务数据写入哈希表;10.获取所述业务数据在预设维度下的指标数据,对所述指标数据进行哈希计算,生成所述业务数据对应的哈希值;11.更改所述位图文件内与所述哈希值匹配的目标bit位的bit值。12.可选地,所述创建目标业务流程对应的设定位数的位图文件,包括:13.获取当天的日期时间,及所述目标业务流程的业务流程标识;14.根据所述日期时间和所述业务流程标识,创建所述目标业务流程对应的设定位数的位图文件。15.可选地,所述对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成所述位图文件的bit位,并将所述bit位写入所述位图文件,包括:16.对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,得到所述目标层级指标对应的三个哈希值;17.将所述三个哈希值作为所述bit位,写入所述位图文件。18.可选地,所述将所述业务数据写入哈希表,包括:19.获取所述业务数据对应的组合指标值;20.将所述组合指标值写入所述哈希表。21.可选地,所述业务数据的组合指标值包括:所述业务数据的目标层级指标、所述目标层级指标对应的日期字段和时刻字段、以及所述目标层级指标的层级指标值。22.第二方面,本技术实施例提供了一种数据缓存装置,包括:23.位图文件创建模块,用于创建目标业务流程对应的设定位数的位图文件;24.bit位生成模块,用于对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成所述位图文件的bit位,并将所述bit位写入所述位图文件;25.业务数据写入模块,用于在产生所述目标业务流程下的业务数据之后,将所述业务数据写入哈希表;26.哈希值生成模块,用于获取所述业务数据在预设维度下的指标数据,对所述指标数据进行哈希计算,生成所述业务数据对应的哈希值;27.bit值更改模块,用于更改所述位图文件内与所述哈希值匹配的目标bit位的bit值。28.可选地,所述位图文件创建模块包括:29.业务流程标识获取单元,用于获取当天的日期时间,及所述目标业务流程的业务流程标识;30.位图文件创建单元,用于根据所述日期时间和所述业务流程标识,创建所述目标业务流程对应的设定位数的位图文件。31.可选地,所述bit位生成模块包括:32.哈希值获取单元,用于对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,得到所述目标层级指标对应的三个哈希值;33.bit位写入单元,用于将所述三个哈希值作为所述bit位,写入所述位图文件。34.可选地,所述业务数据写入模块包括:35.组合指标值获取单元,用于获取所述业务数据对应的组合指标值;36.组合指标值写入单元,用于将所述组合指标值写入所述哈希表。37.可选地,所述业务数据的组合指标值包括:所述业务数据的目标层级指标、所述目标层级指标对应的日期字段和时刻字段、以及所述目标层级指标的层级指标值。38.第三方面,本技术实施例提供了一种电子设备,包括:39.处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的数据缓存方法。40.第四方面,本技术实施例提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的数据缓存方法。41.与现有技术相比,本技术实施例包括以下优点:42.本技术实施例提供了一种数据缓存方法、装置、电子设备及存储介质,通过创建目标业务流程对应的设定位数的位图文件,对目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成位图文件的bit位,并将bit位写入位图文件,在产生目标业务流程下的业务数据之后,将业务数据写入哈希表,获取业务数据在预设维度下的指标数据,对指标数据进行哈希计算,生成业务数据对应的哈希值,更改位图文件内与哈希值匹配的目标bit位的bit值。本技术实施例通过利用redis中的hash特性ziplist来降低了内存的占用率,数据存储方式简单,写入速度较快,且分层级查询是由查询方对查询字段预处理组合后再经过布隆过滤器降维转成指定组合指标查询,可以极大地提高数据查询效率。附图说明43.图1为本技术实施例提供的一种数据缓存方法的步骤流程图;44.图2为本技术实施例提供的一种数据缓存流程的示意图;45.图3为本技术实施例提供的一种数据缓存装置的结构示意图;46.图4为本技术实施例提供的一种电子设备的结构示意图。具体实施方式47.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术作进一步详细的说明。48.实施例一49.参照图1,示出了本技术实施例提供的一种数据缓存方法的步骤流程图,如图1所示,该数据缓存方法可以包括以下步骤:50.步骤101:创建目标业务流程对应的设定位数的位图文件。51.本技术实施例可以应用于基于实时数据的分层指标统计数据缓存方法,对海量分钟级层级统计数据进行缓存的场景中。52.位图文件即bitmap,扩展名可以是.bmp或者.dib。位图是windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/(8*1024)=3072kb。53.目标业务流程是指需要创建位图文件的业务流程。54.在本示例中,目标业务流程的数量可以为一个,也可以为多个,具体地,对于目标业务流程的数量可以根据业务需求而定,本实施例对此不加以限制。55.在本实施例中,可以针对目标业务流程,创建其对应的设定位数的位图文件。对于创建位图文件的过程可以结合下述具体实现方式进行详细描述。56.在本技术的一种具体实现方式中,上述步骤101可以包括:57.子步骤a1:获取当天的日期时间,及所述目标业务流程的业务流程标识。58.在本实施例中,日期时间是指创建位图文件当天的日期,如2021年12月22日等。59.业务流程标识是指目标业务流程对应的标识,在本示例中,每个业务流程均对应有一个唯一的标识,业务流程的标识可以为数字标识,也可以为字符标识,还可以为其它形式的标识,具体地,对于业务流程标识的表现形式可以根据业务需求而定,本实施例对此不加以限制。60.在需要创建目标业务流程对应的位图文件时,可以获取当天的日期时间,以及目标业务流程的业务流程标识。61.在获取到当天时间以及目标业务流程的业务流程标识之后,执行子步骤a2。62.子步骤a2:根据所述日期时间和所述业务流程标识,创建所述目标业务流程对应的设定位数的位图文件。63.在获取到当天时间以及目标业务流程的业务流程标识之后,可以根据当天的日期时间和业务流程标识创建目标业务流程对应的设定位数的位图文件。在本示例中,针对每个业务流程每天可以创建一个位数为102400的bitmap。64.在创建目标业务流程对应的设定位数的位图文件之后,执行步骤102。65.步骤102:对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成所述位图文件的bit位,并将所述bit位写入所述位图文件。66.在创建目标业务流程对应的设定位数的位图文件之后,可以对目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成位图文件的bit位,并将生成的bit位写入位图文件,例如,对于层级指标的key可以按照省份、接口、状态进行拼接,然后按照三种哈希计算方法计算得到三个哈希值,进而可以将这三个哈希值作为bit位,写入位图文件。67.对于上述过程可以结合下述具体实现方式进行详细描述。68.在本技术的一种具体实现方式中,上述步骤102可以包括:69.子步骤b1:对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,得到所述目标层级指标对应的三个哈希值。70.在本实施例中,在创建目标业务流程对应的位图文件之后,可以对目标业务流程下的目标层级指标的关键之进行三种哈希计算,得到目标层级指标对应的三个哈希值。71.在对目标业务流程下的目标层级指标的关键值进行三种哈希计算得到目标层级指标对应的三个哈希值之后,执行子步骤b2。72.子步骤b2:将所述三个哈希值作为所述bit位,写入所述位图文件。73.在对目标业务流程下的目标层级指标的关键值进行三种哈希计算得到目标层级指标对应的三个哈希值之后,可以将得到的三个哈希值作为bit位写入到目标业务流程对应的位图文件中。74.在对目标业务流程下的目标层级指标的关键值进行三种哈希计算生成位图文件的bit位,并将bit位写入位图文件之后,执行步骤103。75.步骤103:在产生所述目标业务流程下的业务数据之后,将所述业务数据写入哈希表。76.在对目标业务流程下的目标层级指标的关键值进行三种哈希计算生成位图文件的bit位,并将bit位写入位图文件,并在产生目标业务流程下的业务数据之后,可以将产生的业务数据写入到哈希表(即hashtable)。在本实施例中,可以针对目标业务流程中单独指标实际出现的元素进行缓存,具体过程如下:77.1、将目标业务流程的组合指标进行拆分,分别单独创建hashtable,存储实际业务中发生的分类指标具体值内容,如:某流程统计为“接口-省份-状态码”这3个指标,那么创建三个hashtable用于存储具体是由哪些接口,哪些省份,哪些状态产生;78.2、保存的内容按天存储,不关心发生分钟,可以用于降低hashtable元素个数,提高查询速度。79.对于上述过程可以结合下述具体实现方式进行详细描述。80.在本技术的一种具体实现方式中,上述步骤103可以包括:81.子步骤c1:获取所述业务数据对应的组合指标值。82.在本实施例中,在将目标业务流程下产生的业务数据写入哈希表时,可以获取该业务数据对应的组合指标值。83.在本实施例中,组合指标值可以包括:业务数据的目标层级指标、目标层级指标对应的日期字段和时刻字段、以及目标层级指标的层级指标值。84.在本示例中,层级指标使用hashtable存储,层级指标key包含日期和时间字段,层级指标时间字段采用当前发生分钟数0-1439,层级指标value为int64类型,做incr增加保存。85.在获取到业务数据对应的组合指标值之后,执行子步骤c2。86.子步骤c2:将所述组合指标值写入所述哈希表。87.在获取到业务数据对应的组合指标值之后,则可以将组合指标值写入哈希表。88.在本示例中,组合指标缓存数据的结构示例如下:89.日期#指标1[#指标n]#分钟数=统计值[0090]07#jifei001#1349=100[0091]07#jifei001#北京#1349=90[0092]07#jifei001#北京#200#1349=20[0093]可以理解地,上述示例仅是为了更好地理解本技术实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。[0094]在产生目标业务流程下的业务数据并将该业务数据写入哈希表之后,执行步骤104。[0095]步骤104:获取所述业务数据在预设维度下的指标数据,对所述指标数据进行哈希计算,生成所述业务数据对应的哈希值。[0096]在将目标业务流程下产生的业务数据写入哈希表之后,可以获取业务数据在预设维度下的指标数据,并对指标数据进行哈希计算,以生成业务数据对应的哈希值,例如,预设维度为:省份、接口和状态三个维度,在获取到业务数据之后,可以获取业务数据在这三个维度下的指标数据,然后将这三个指标数据进行拼接,然后计算对应的哈希值。[0097]在生成业务数据对应的哈希值之后,执行步骤105。[0098]步骤105:更改所述位图文件内与所述哈希值匹配的目标bit位的bit值。[0099]在生成业务数据对应的哈希值之后,可以更改位图文件内与哈希值匹配的目标biti位的bit值,例如,在计算的哈希值为10时,则目标bit位即为10,则将该目标bit位的bit值从0改为1。[0100]在本实施例中,在将业务数据写入之后,可以进行业务数据的查询,查询方法可以包括:[0101]1、直接查询法:通过日期 指标名称 分钟数从缓存中查询统计结果;[0102]2、层级查询法:先确定要查多少级的数据,取出对应的指标实际发生内容字段,在内存中按顺序组合,用当天的布隆过滤器去掉肯定不存在的key组合后批量查询缓存。[0103]本技术实施例通过redis中的hash特性ziplist来降低了内存的占用率,固定了子key的个数为1440,避免了ziplist转成hashtable,在不影响查询性能的情况下,将内存占用降低5倍-10倍。[0104]而且,分层级查询是由查询方对查询字段预处理组合后再经过布隆过滤器降维转成指定组合指标查询。[0105]对本技术实施例提供的上述方案可以结合图2进行如下详细描述。[0106]参照图2,示出了本技术实施例提供的一种数据缓存流程的示意图。[0107]如图2所示,本实施例中的缓存共包含三部分:布隆过滤器、单独指标实际元素和组合指标值。[0108]布隆过滤器可以采用三种哈希算法:hashbkdr、hashsdbm和hashdjb。采用这三种哈希算法可以创建每个业务流程每天的一个位数为102400的位图文件,即图2所示:bloomfilter-bitmap(size:102400)。[0109]实际发生字段:对于业务流程内产生的业务数据字段,可以按照图2所示字段分类名存储于hashtable。[0110]字段值缓存:采用组合字段名的存储方式存储于hashtable,即日期#分类字段1[#分类字段n],按分钟进行统计,如图2所示:0分钟统计值、1分钟统计值、2分钟统计值、3分钟统计值、...、1439分钟统计值等。[0111]本技术实施例提供的数据缓存方法,通过创建目标业务流程对应的设定位数的位图文件,对目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成位图文件的bit位,并将bit位写入位图文件,在产生目标业务流程下的业务数据之后,将业务数据写入哈希表,获取业务数据在预设维度下的指标数据,对指标数据进行哈希计算,生成业务数据对应的哈希值,更改位图文件内与哈希值匹配的目标bit位的bit值。本技术实施例通过利用redis中的hash特性ziplist来降低了内存的占用率,数据存储方式简单,写入速度较快,且分层级查询是由查询方对查询字段预处理组合后再经过布隆过滤器降维转成指定组合指标查询,可以极大地提高数据查询效率。[0112]对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。[0113]实施例二[0114]参照图3,示出了本技术实施例提供的一种数据缓存装置的结构示意图,如图3所示,该数据缓存装置300可以包括以下模块:[0115]位图文件创建模块310,用于创建目标业务流程对应的设定位数的位图文件;[0116]bit位生成模块320,用于对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成所述位图文件的bit位,并将所述bit位写入所述位图文件;[0117]业务数据写入模块330,用于在产生所述目标业务流程下的业务数据之后,将所述业务数据写入哈希表;[0118]哈希值生成模块340,用于获取所述业务数据在预设维度下的指标数据,对所述指标数据进行哈希计算,生成所述业务数据对应的哈希值;[0119]bit值更改模块350,用于更改所述位图文件内与所述哈希值匹配的目标bit位的bit值。[0120]可选地,所述位图文件创建模块310包括:[0121]业务流程标识获取单元,用于获取当天的日期时间,及所述目标业务流程的业务流程标识;[0122]位图文件创建单元,用于根据所述日期时间和所述业务流程标识,创建所述目标业务流程对应的设定位数的位图文件。[0123]可选地,所述bit位生成模块320包括:[0124]哈希值获取单元,用于对所述目标业务流程下的目标层级指标的关键值进行三种哈希计算,得到所述目标层级指标对应的三个哈希值;[0125]bit位写入单元,用于将所述三个哈希值作为所述bit位,写入所述位图文件。[0126]可选地,所述业务数据写入模块330包括:[0127]组合指标值获取单元,用于获取所述业务数据对应的组合指标值;[0128]组合指标值写入单元,用于将所述组合指标值写入所述哈希表。[0129]可选地,所述业务数据的组合指标值包括:所述业务数据的目标层级指标、所述目标层级指标对应的日期字段和时刻字段、以及所述目标层级指标的层级指标值。[0130]本技术实施例提供的数据缓存装置,通过创建目标业务流程对应的设定位数的位图文件,对目标业务流程下的目标层级指标的关键值进行三种哈希计算,生成位图文件的bit位,并将bit位写入位图文件,在产生目标业务流程下的业务数据之后,将业务数据写入哈希表,获取业务数据在预设维度下的指标数据,对指标数据进行哈希计算,生成业务数据对应的哈希值,更改位图文件内与哈希值匹配的目标bit位的bit值。本技术实施例通过利用redis中的hash特性ziplist来降低了内存的占用率,数据存储方式简单,写入速度较快,且分层级查询是由查询方对查询字段预处理组合后再经过布隆过滤器降维转成指定组合指标查询,可以极大地提高数据查询效率。[0131]实施例三[0132]本技术实施例提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的数据缓存方法。[0133]参照图4,示出了本技术实施例提供的一种电子设备的结构示意图,如图4所示,电子设备400包括中央处理单元(cpu)401,其可以根据存储在只读存储器(rom)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(ram)403中的计算机程序指令,来执行各种适当的动作和处理。在ram403中,还可存储电子设备400操作所需的各种程序和数据。cpu401、rom402以及ram403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。[0134]电子设备400中的多个部件连接至i/o接口405,包括:输入单元406,例如键盘、鼠标、麦克风等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0135]上文所描述的各个过程和处理,可由处理单元401执行。例如,上述任一实施例的方法可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由rom402和/或通信单元409而被载入和/或安装到电子设备400上。当计算机程序被加载到ram403并由cpu401执行时,可以执行上文描述的方法中的一个或多个动作。[0136]实施例四[0137]本技术实施例提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的数据缓存方法。[0138]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。[0139]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。[0140]以上对本技术所提供的一种数据缓存方法、一种数据缓存装置、一种电子设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献