CN114281859A - 数据处理方法、设备及存储介质 - Google Patents
数据处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114281859A CN114281859A CN202111676565.8A CN202111676565A CN114281859A CN 114281859 A CN114281859 A CN 114281859A CN 202111676565 A CN202111676565 A CN 202111676565A CN 114281859 A CN114281859 A CN 114281859A
- Authority
- CN
- China
- Prior art keywords
- key
- data
- local cache
- heat value
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 37
- 230000002085 persistent effect Effects 0.000 claims description 22
- 230000001186 cumulative effect Effects 0.000 claims description 8
- 230000002688 persistence Effects 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 49
- 238000004364 calculation method Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000013461 design Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Abstract
本申请提供一种数据处理方法、设备及存储介质,该方法包括获取待处理数据,根据预设规则和待处理数据的数据特征,确定待处理数据的第一Key,若本地缓存中存在第一Key对应的数据,则将第一Key的最近访问时间和累计访问次数进行更新,根据本地缓存最小时间戳、更新后的第一Key的最近访问时间和更新后的第一Key的累计访问次数,计算第一Key的当前热度值;根据第一Key的当前热度值,将第一Key对应的数据存储于本地缓存中或非本地缓存中,非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。本申请提供的数据处理方法,提高了数据处理效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、设备及存储介质。
背景技术
随着通信技术的发展,大数据时代已然来临,对海量热点数据的处理,是企业进行业务管理以及为用户提供更好服务的关键环节。
现有技术中,通常可以将海量热点数据存储于缓存集群中,通过与缓存集群进行数据交互,实现对海量热点数据的处理。
然而,实现本申请过程中,发明人发现现有技术中至少存在如下问题:与缓存集群的交互效率会受到网络带宽的限制,数据传输具有较高延迟,降低了数据处理效率。
发明内容
本申请提供一种数据处理方法、设备及存储介质,以提高数据处理的效率。
第一方面,本申请提供一种数据处理方法,包括:
获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key;
若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新;
根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值;
根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
在一种可能的设计中,所述根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key之后,还包括:
若本地缓存中存在需与所述第一Key进行关联访问的第二Key,则将所述第二Key的最近访问时间和累计访问次数进行更新;
根据本地缓存最小时间戳、更新后的所述第二Key的最近访问时间和更新后的所述第二Key的累计访问次数,计算所述第二Key的当前热度值;
根据所述第二Key的当前热度值,将所述第二Key对应的数据存储于本地缓存中或非本地缓存中。
在一种可能的设计中,所述根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值,包括:
将所述第一Key的最近访问时间与所述本地缓存最小时间戳之间的差值,和所述第一Key的累计访问次数的加权和,确定为所述第一Key的热度值。
在一种可能的设计中,所述根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中,包括:
根据所述热度值,将所述第一Key对应的数据加入本地缓存的优先级队列中;所述优先级队列的头部数据的热度值高于尾部数据的热度值;
根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中。
在一种可能的设计中,所述非本地缓存包括缓存集群,所述预设阈值包括窗口允许最大值、基准值和预设最低热度值;所述根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中,包括:
若所述优先级队列的元素个数大于窗口允许最大值,则将所述优先级队列中大于所述窗口允许最大值的尾部数据换出到已淘汰队列中;
若所述优先级队列的元素个数小于所述窗口允许最大值且大于基准值,则将所述优先级队列中热度值小于预设最低热度值的尾部数据换出到已淘汰队列;
定时扫描所述已淘汰队列,并将所述已淘汰队列中的数据删除并批量换出至非本地缓存中。
在一种可能的设计中,所述非本地缓存还包括持久层,所述根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中之后,还包括:
为换出至所述缓存集群中的各数据设置过期时长;
将各数据对应的Key和失效时间写入持久化有序队列中;
定时扫描所述持久化有序队列,获取达到失效时间的第三Key,并将所述第三Key对应的数据换出至持久层。
在一种可能的设计中,所述方法还包括:
获取用户的查询请求,并对所述查询请求进行解析,获得所述查询请求对应第四Key;
根据所述第四Key,从所述本地缓存中读取所述第四Key对应的数据,若未读取到所述第四Key对应的数据,则从所述非本地缓存中读取所述第四Key对应的数据。
第二方面,本申请提供一种数据处理设备,包括:
获取模块,用于获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key;
更新模块,用于若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新;
计算模块,用于根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值;
存储模块,用于根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
第三方面,本申请提供一种数据处理设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
本申请提供的数据处理方法、设备及存储介质,该方法首先获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key,若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新,根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值;根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中,所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。本申请通过将待处理数据按照数据特征编排Key,基于本地缓存最小时间戳、最近访问时间和累计访问次数对本地缓存中各Key进行热度值计算,提高了热度值的计算准确率,在此基础上,按照热度值的高低,将高热度值的数据存储于本地缓存,将低热度值的数据换出至非本地缓存中,使得在数据处理过程中更多的访问本地缓存,几乎无延迟,提高了数据处理效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的应用场景示意图;
图2为本申请实施例提供的数据处理方法的流程示意图一;
图3为本申请实施例提供的本地缓存中数据结构的示意图;
图4为本申请实施例提供的优先级队列的数据结构示意图;
图5为本申请实施例提供的已淘汰数据队列的数据结构的示意图;
图6为本申请实施例提供的持久化有序队列的数据结构的示意图;
图7为本申请实施例提供的缓存集群与持久层数据同步的流程示意图;
图8为本申请实施例提供的数据处理方法的流程示意图二;
图9为本申请实施例提供的数据处理设备的结构示意图;
图10为本申请实施例提供的一种数据处理设备的框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
各种外围系统汇聚过来的,内部的渠道流程,话单流量,通过别的系统汇聚过来的。
随着通信技术的发展,大数据时代已然来临,对海量热点数据的处理,是企业进行业务管理以及为用户提供更好服务的关键环节。对海量热点数据的处理,可以是对海量热点数据基于规则进行分拣加工处理。
现有技术中,可以将热点数据存储在缓存集群中,如使用Redis、memcached等实现的缓存集群。数据分拣加工时,每一条数据需要向缓存集群请求当前缓存数据信息,再将加工后数据缓存入缓存集群中。由于缓存集群比起持久化存储设备或者文件系统的读写速度快,能够实现数据的高效分拣。然而,对热点数据的操作都需要与缓存集群交互,交互效率受网络带宽限制,数据直接请求具有较高延迟,极大的降低了海量数据处理系统的吞吐率。
为解决上述技术问题,本申请发明人研究发现,可以根据待处理的热点数据的数据特征进行编排Key,基于Key的最近访问时间、累计访问次数和本地缓存最小时间戳等因素计算各Key的热度值,并将热度值高的Key对应的数据存储于本地缓存。基于此,本实施例提供了一种数据处理方法,能够提高热度值的计算准确率,在此基础上,使得在数据处理过程中更多的访问本地缓存,几乎无延迟,提高了数据处理效率。
图1为本申请实施例提供的一种数据处理方法的应用场景示意图。如图1所示,后台服务包括多个服务,每个服务包括一个本地缓存,后台服务从各系统生成的实时数据中获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key,若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新,根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值;根据所述第一Key的当前热度值的大小,将所述第一Key对应的数据存储于本地缓存中或缓存集群或持久层中,示例性的,可以将热度值高的存储于本地缓存,将热度值低的换出至缓存集群中,热度更低的换出至持久层中。另外,客户端可以接收用户发送的查询请求,并通过负责均衡将查询请求发送给后台服务中的任一服务,以进行数据查询。本申请通过将待处理数据按照数据特征编排Key,基于本地缓存最小时间戳、最近访问时间和累计访问次数对本地缓存中各Key进行热度值计算,提高了热度值的计算准确率,在此基础上,按照热度值的高低,将高热度值的数据存储于本地缓存,将低热度值的数据换出至非本地缓存中,使得在数据处理过程中更多的访问本地缓存,几乎无延迟,提高了数据处理效率。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的数据处理方法的流程示意图一。如图2所示,该方法包括:
201、获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key。
本实施例的执行主体可以为计算机、服务器等数据处理设备。
本实施例中,待处理数据的来源,可以是数据生成系统生成的实时数据,例如日志系统实时生成的日志数据,话单系统实时生成的话单数据,购物系统等。
本实施例中,数据特征是指数据内容、数据来源、数据采集位置等特征。举例来说,若待处理数据为话单,则数据特征可以为电话头,例如135、186等,还可以为归属地;若待处理数据为日志,则数据特征可以为日志来源、日志采集点等;若待处理数据为商品订单,则数据特征可以为订单号、商品名称、商品产地、商品价格等。
本实施例中,为待处理数据编排Key的过程,可以理解为是在对待处理数据进行分类。以数据特征为号码头为例。电话头为135的数据可以均被编排为Key1,电话头为186的数据可以均被编排为Key2。也即,多个数据可以被编排为同一个Key,每个Key可以对应多个数据。
202、若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新。
具体的,在对待处理数据进行Key的编排后,可以根据待处理数据的第一Key查询本地缓存中是否已经存在同属于第一Key的缓存数据,若存在的话,可以对待处理数据进行加工处理后,将加工处理后的待处理数据与上述缓存数据存储在一起,即同属于第一key的数据存储在一起,以便于根据第一Key对第一Key对应的数据进行处理。可以理解,同属于第一Key的数据存储位置不连续也是可以的,本实施例对此不做限定。
若本地缓存中不存在第一Key对应的数据,则可以访问非本地缓存,例如缓存集群和持久层,若非本地缓存中存在第一Key对应的数据,可以将该数据加载到本地缓存中,创建缓存对象,由于本次访问可以算作1次访问记录,所以可以将累计访问次数置1,最近访问时间可以设置为当前时间。进而基于后续的热度计算方式,计算第一Key的热度值。
若本地缓存和非本地缓存中均不存在第一Key对应的数据,可以创建缓存对象,由于本次访问可以算作1次访问记录,所以可以将累计访问次数置1,最近访问时间可以设置为当前时间。进而基于后续的热度计算方式,计算第一Key的热度值。
本实施例中,在查询第一key对应的数据的过程中,相当于对第一Key对应的数据进行了一次访问,因此,可以将第一Key对应的最近访问时间更新为当前时间,将第一Key的累计访问次数进行加一处理。
203、根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值。
本实施例中,第一Key的热度值的计算方式可以有多种,在一种可实现方式中,可以将所述第一Key的最近访问时间与所述本地缓存最小时间戳之间的差值和所述第一Key的累计访问次数的总和,确定为热度值。
在另一种可实现方式中,可以将所述第一Key的最近访问时间与所述本地缓存最小时间戳之间的差值,和所述第一Key的累计访问次数的加权和,确定为所述第一Key的热度值。
具体的,在对具有时效性的待处理数据进行分拣加工等处理时,根据预设规则将待处理数据的数据特征编排为第一Key,对待处理数据进行加工处理后,将第一Key的最近访问时间更新为当前时间,累计访问次数增加1,通过数据热点计算组件对第一Key进行热度计算,热度值与最近访问时间、访问次数成正相关,针对数据的访问频率随时间增长逐渐降低的场景,具体热度计算为:热度值=(最近访问时间戳-本地缓存窗口数据最小时间戳)*时间影响加权系数+累计访问次数*访问量加权系数,其中,时间影响加权系数和访问量加权系数,可以根据实际需要进行设定。如图3所示,在完成第一Key的热度值计算后,将数据加工后内容、最近访问时间、访问次数、热度值等属性加入到使用JavaConcurrentHashMap实现的内存缓存中。
204、根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
本实施例中,基于第一Key的当前热度值,判断将第一Key留存在本地缓存还是换出到非本地缓存的方式有多种。
示例性的,在一种可实现方式中,在计算好第一Key的热度值后,可以将第一Key的热度值与本地缓存中各Key的热度值进行比较,将热度值最低的Key的数据换出至非本地缓存中,否则继续留存于本地缓存中;在另一种可实现方式中,可以将第一Key的热度值与预设阈值进行比较,若低于预设阈值,则换出至非本地缓存中,否则继续留存于本地缓存中。
实际应用中,各Key之间可能存在依赖关系,例如,某日志系统需要获知当日发生故障的次数,假设已从实时数据中获取到一个故障报告日志,并该故障报告日志编排了Key1,在获取到第二个故障报告日志时,为该日志编排了Key2,由于需要获知的是故障次数,因此,对Key1也需要进行访问。因此可以说Key2和Key1为关联访问关系,针对上述情况,在一些实施例中,在上述实施例的基础上,所述根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key之后,还可以包括:若本地缓存中存在需与所述第一Key进行关联访问的第二Key,则将所述第二Key的最近访问时间和累计访问次数进行更新;根据本地缓存最小时间戳、更新后的所述第二Key的最近访问时间和更新后的所述第二Key的累计访问次数,计算所述第二Key的当前热度值;根据所述第二Key的当前热度值,将所述第二Key对应的数据存储于本地缓存中或非本地缓存中。
本实施例提供的数据处理方法,通过将待处理数据按照数据特征编排Key,基于本地缓存最小时间戳、最近访问时间和累计访问次数对本地缓存中各Key进行热度值计算,提高了热度值的计算准确率,在此基础上,按照热度值的高低,将高热度值的数据存储于本地缓存,将低热度值的数据换出至非本地缓存中,使得在数据处理过程中更多的访问本地缓存,几乎无延迟,提高了数据处理效率。
在一些实施例中,为了保证留存在本地缓存中的数据对应的热度值足够高,以提升对本地缓存的访问次数,进而提升数据处理效率。在上述实施例的基础上,步骤204可以具体包括:根据所述热度值,将所述第一Key对应的数据加入本地缓存的优先级队列中;所述优先级队列的头部数据的热度值高于尾部数据的热度值;根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中。
可选地,所述非本地缓存包括缓存集群,所述预设阈值包括窗口允许最大值、基准值和预设最低热度值;所述根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中,可以包括:若所述优先级队列的元素个数大于窗口允许最大值,则将所述优先级队列中大于所述窗口允许最大值的尾部数据换出到已淘汰队列中;若所述优先级队列的元素个数小于所述窗口允许最大值且大于基准值,则将所述优先级队列中热度值小于预设最低热度值的尾部数据换出到已淘汰队列;定时扫描所述已淘汰队列,并将所述已淘汰队列中的数据删除并批量换出至非本地缓存中。
具体的,将加工处理后待处理数据的Key、热度值,通过缓存置换组件加入到本地缓存窗口优先级队列中,对数据元素按热度值进行排序,热度值高的元素位于队列头部,热度值低的元素位于队列尾部。本地缓存窗口大小有三个参数控制:基准值、允许最大值以及最低热度值,当缓存窗口优先级队列中元素个数超过允许最大值时,将超过允许最大值的队列尾部低热度值元素移除并写入到已淘汰队列中;当缓存窗口优先级队列中元素个数超过基准值时,会检查队列尾部数据元素的热度值是否小于设定的最低热度值参数,若小于最低热度值参数,同样将该部分数据元素移除并写入到已淘汰队列中。缓存置换组件会定时扫描已淘汰数据队列,按队列中的编排特征key,将本地缓存数据删除并批量写入到分布式缓存中。如图4所示,为了便于排序,提高数据处理效率,优先级队列可以使用Java的PriorityBlockingQueue实现。如图5所示,由于无需排序,已淘汰数据队列可以使用Java的LinkedBlockingQueue实现。
可选地,所述非本地缓存还可以包括持久层,所述定时扫描所述已淘汰队列,并将所述已淘汰队列中的数据删除并批量换出至缓存集群中之后,还可以包括:为换出至所述缓存集群中的各数据设置过期时长;将各数据对应的Key和失效时间写入持久化有序队列中;定时扫描所述持久化有序队列,获取达到失效时间的第三Key,并将所述第三Key对应的数据换出至持久层。
举铁,通过缓存集群数据定时同步到持久层策略,将低热度数据换出到持久层,避免随时间增长缓存集群缓存数据量增多影响主机性能。
本实施例针对数据的访问频率随时间增长逐渐降低的场景,可以使用Redis作为缓存集群,在热点数据写入Redis时,通过设置Key的过期时长实现缓存集群数据自动删除,同时将编排特征Key与失效时间写入到持久化有序队列中,失效时间计算规则为该Key的最近访问时间加Redis中的Key的过期时长,如图6所示,持久化有序队列可以使用Redis有序集合ZSET实现,将失效时间作为ZSET的排序分数。
如图7所示,Redis缓存集群和持久层之间的数据同步的实现步骤可以包括,首先针对从本地缓存中换入到Redis缓存集群的换入数据,生成换入数据的失效时间,并将数据写入持久化有序队列中,定时读取持久化有序队列,查询失效时间小于当前时间的编排特征Key列表,根据该Key列表批量读取数据元素,将读取的数据元素换出到持久层,并将持久化有序队列中低于本次同步时间的数据元素进行删除。
图8为本申请实施例提供的数据处理方法的流程示意图二。如图8所示,在上述实施例的基础上,例如在图2所示实施例的基础上,本实施例中增加了对数据读取的示例说明,该方法包括:
801、获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key。
802、若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新。
803、根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值。
804、根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
本实施例中步骤801至步骤804与上述实施例中步骤201至步骤204相类似,此处不再赘述。
805、获取用户的查询请求,并对所述查询请求进行解析,获得所述查询请求对应第四Key。
806、根据所述第四Key,从所述本地缓存中读取所述第四Key对应的数据,若未读取到所述第四Key对应的数据,则从所述非本地缓存中读取所述第四Key对应的数据。
本实施例中,一个查询请求可以对应多个Key,也即第四Key可以为多个Key。在读取后,可以对第四Key的最近访问时间、累计访问次数的参数值进行更新,以便重新计算第四Key对应的热度值,并基于第四Key当前的热度值,执行上述实施例中的置换策略,例如热度值高可以将第四Key的数据留存在本地缓存,若热度值低可以将第四Key的数据换出至非本地缓存中。
本实施例提供的数据处理方法,通过对用户输入的查询请求进行解析,得到需要访问的Key,并基于Key读取数据,能够提高数据处理效率。
图9为本申请实施例提供的数据处理设备的结构示意图。如图9所示,该数据处理设备90包括:获取模块901、更新模块902、计算模块903以及存储模块904。
获取模块901,用于获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key。
更新模块902,用于若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新。
计算模块903,用于根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值。
存储模块904,用于根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
本申请实施例提供的数据处理设备,通过将待处理数据按照数据特征编排Key,基于本地缓存最小时间戳、最近访问时间和累计访问次数对本地缓存中各Key进行热度值计算,提高了热度值的计算准确率,在此基础上,按照热度值的高低,将高热度值的数据存储于本地缓存,将低热度值的数据换出至非本地缓存中,使得在数据处理过程中更多的访问本地缓存,几乎无延迟,提高了数据处理效率。
本申请实施例提供的数据处理设备,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图10为本申请实施例提供的一种数据处理设备的框图,该设备可以是计算机,服务器等数据处理设备。
装置100可以包括以下一个或多个组件:处理组件1001,存储器1002,电源组件1003,多媒体组件1004,音频组件1005,输入/输出(I/O)接口1006,传感器组件1007,以及通信组件1008。
处理组件1001通常控制装置100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1001可以包括一个或多个处理器1009来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1001可以包括一个或多个模块,便于处理组件1001和其他组件之间的交互。例如,处理组件1001可以包括多媒体模块,以方便多媒体组件1004和处理组件1001之间的交互。
存储器1002被配置为存储各种类型的数据以支持在装置100的操作。这些数据的示例包括用于在装置100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1002可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1003为装置100的各种组件提供电力。电源组件1003可以包括电源管理系统,一个或多个电源,及其他与为装置100生成、管理和分配电力相关联的组件。
多媒体组件1004包括在所述装置100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1004包括一个前置摄像头和/或后置摄像头。当装置100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1005被配置为输出和/或输入音频信号。例如,音频组件1005包括一个麦克风(MIC),当装置100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1002或经由通信组件1008发送。在一些实施例中,音频组件1005还包括一个扬声器,用于输出音频信号。
I/O接口1006为处理组件1001和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1007包括一个或多个传感器,用于为装置100提供各个方面的状态评估。例如,传感器组件1007可以检测到装置100的打开/关闭状态,组件的相对定位,例如所述组件为装置100的显示器和小键盘,传感器组件1007还可以检测装置100或装置100一个组件的位置改变,用户与装置100接触的存在或不存在,装置100方位或加速/减速和装置100的温度变化。传感器组件1007可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1007还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1007还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1008被配置为便于装置100和其他设备之间有线或无线方式的通信。装置100可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1008经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1008还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置100可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1002,上述指令可由装置100的处理器1009执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上数据处理设备执行的数据处理方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key;
若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新;
根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值;
根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
2.根据权利要求1所述的方法,其特征在于,所述根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key之后,还包括:
若本地缓存中存在需与所述第一Key进行关联访问的第二Key,则将所述第二Key的最近访问时间和累计访问次数进行更新;
根据本地缓存最小时间戳、更新后的所述第二Key的最近访问时间和更新后的所述第二Key的累计访问次数,计算所述第二Key的当前热度值;
根据所述第二Key的当前热度值,将所述第二Key对应的数据存储于本地缓存中或非本地缓存中。
3.根据权利要求1所述的方法,其特征在于,所述根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值,包括:
将所述第一Key的最近访问时间与所述本地缓存最小时间戳之间的差值,和所述第一Key的累计访问次数的加权和,确定为所述第一Key的热度值。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中,包括:
根据所述热度值,将所述第一Key对应的数据加入本地缓存的优先级队列中;所述优先级队列的头部数据的热度值高于尾部数据的热度值;
根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中。
5.根据权利要求4所述的方法,其特征在于,所述非本地缓存包括缓存集群,所述预设阈值包括窗口允许最大值、基准值和预设最低热度值;所述根据所述优先级队列的当前的元素个数和预设阈值,将优先级队列中满足预设条件的尾部数据换出至非本地缓存中,包括:
若所述优先级队列的元素个数大于窗口允许最大值,则将所述优先级队列中大于所述窗口允许最大值的尾部数据换出到已淘汰队列中;
若所述优先级队列的元素个数小于所述窗口允许最大值且大于基准值,则将所述优先级队列中热度值小于预设最低热度值的尾部数据换出到已淘汰队列;
定时扫描所述已淘汰队列,并将所述已淘汰队列中的数据删除并批量换出至缓存集群中。
6.根据权利要求5所述的方法,其特征在于,所述非本地缓存还包括缓持久层,所述定时扫描所述已淘汰队列,并将所述已淘汰队列中的数据删除并批量换出至缓存集群中之后,还包括:
为换出至所述缓存集群中的各数据设置过期时长;
将各数据对应的Key和失效时间写入持久化有序队列中;
定时扫描所述持久化有序队列,获取达到失效时间的第三Key,并将所述第三Key对应的数据换出至持久层。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
获取用户的查询请求,并对所述查询请求进行解析,获得所述查询请求对应第四Key;
根据所述第四Key,从所述本地缓存中读取所述第四Key对应的数据,若未读取到所述第四Key对应的数据,则从所述非本地缓存中读取所述第四Key对应的数据。
8.一种数据处理设备,其特征在于,包括:
获取模块,用于获取待处理数据,并根据预设规则和所述待处理数据的数据特征,确定所述待处理数据的第一Key;
更新模块,用于若本地缓存中存在所述第一Key对应的数据,则将所述第一Key的最近访问时间和累计访问次数进行更新;
计算模块,用于根据本地缓存最小时间戳、更新后的所述第一Key的最近访问时间和更新后的所述第一Key的累计访问次数,计算所述第一Key的当前热度值;所述本地缓存最小时间戳为所述本地缓存中各Key的更新后的最近访问时间中的最小值;
存储模块,用于根据所述第一Key的当前热度值,将所述第一Key对应的数据存储于本地缓存中或非本地缓存中;所述非本地缓存中各数据对应的热度值低于所述本地缓存中各数据对应的热度值。
9.一种数据处理设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111676565.8A CN114281859A (zh) | 2021-12-31 | 2021-12-31 | 数据处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111676565.8A CN114281859A (zh) | 2021-12-31 | 2021-12-31 | 数据处理方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281859A true CN114281859A (zh) | 2022-04-05 |
Family
ID=80879687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111676565.8A Pending CN114281859A (zh) | 2021-12-31 | 2021-12-31 | 数据处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281859A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032015A1 (zh) * | 2022-08-11 | 2024-02-15 | 华为技术有限公司 | 数据缩减方法、装置及系统 |
-
2021
- 2021-12-31 CN CN202111676565.8A patent/CN114281859A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024032015A1 (zh) * | 2022-08-11 | 2024-02-15 | 华为技术有限公司 | 数据缩减方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016000357A1 (zh) | 网页访问方法、装置、服务器及终端 | |
US11165740B2 (en) | Message sending method and terminal device | |
US20170060916A1 (en) | Contact record processing method and apparatus | |
CN114281859A (zh) | 数据处理方法、设备及存储介质 | |
CN109634762B (zh) | 一种数据回收方法、装置、电子设备及存储介质 | |
US20210132855A1 (en) | Method and device for detecting slow node and computer-readable storage medium | |
CN112948440A (zh) | 页面数据的处理方法及装置、终端、存储介质 | |
CN115422203A (zh) | 区块链分布式系统的数据管理方法、装置、设备及介质 | |
CN114428589A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN116303303A (zh) | 批量数据处理方法、装置、设备及介质 | |
CN115016944A (zh) | 一种进程访问方法、装置及电子设备 | |
CN111241134B (zh) | 一种数据处理方法及装置 | |
CN114077461A (zh) | 应用程序的运行方法、装置、设备及存储介质 | |
CN113422800B (zh) | 资源处理方法、装置、系统、电子设备及存储介质 | |
CN110019358B (zh) | 一种数据处理方法、装置及设备和存储介质 | |
CN113689520B (zh) | 图数据的处理方法、装置、电子设备及存储介质 | |
CN111984865B (zh) | 账户数量的查询方法、装置、电子设备和存储介质 | |
CN115510107A (zh) | 数据预热缓存方法、装置、设备及存储介质 | |
CN111625536B (zh) | 一种数据访问方法及装置 | |
CN109582851B (zh) | 搜索结果处理方法及装置 | |
CN107544965B (zh) | 一种优化静态词库尺寸的方法及电子设备 | |
CN107544969B (zh) | 一种优化静态词库尺寸的方法及电子设备 | |
CN116126220A (zh) | 磁盘空间分配方法、装置、电子设备及存储介质 | |
CN113626396A (zh) | 一种聚类检测方法、装置、电子设备、存储介质及产品 | |
CN115113915A (zh) | 一种数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |