CN111858676A - 一种数据处理的方法及装置 - Google Patents
一种数据处理的方法及装置 Download PDFInfo
- Publication number
- CN111858676A CN111858676A CN202010725337.4A CN202010725337A CN111858676A CN 111858676 A CN111858676 A CN 111858676A CN 202010725337 A CN202010725337 A CN 202010725337A CN 111858676 A CN111858676 A CN 111858676A
- Authority
- CN
- China
- Prior art keywords
- data
- cache region
- target data
- granularity
- cache
- 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 45
- 238000000034 method Methods 0.000 claims abstract description 70
- 238000003860 storage Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 39
- 230000032683 aging Effects 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 18
- 230000002776 aggregation Effects 0.000 claims description 15
- 238000004220 aggregation Methods 0.000 claims description 15
- 230000004931 aggregating effect Effects 0.000 claims description 12
- 238000006116 polymerization reaction Methods 0.000 claims description 6
- 235000019580 granularity Nutrition 0.000 description 152
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000036632 reaction speed Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据处理的方法及装置。所述数据处理的方法应用于数据缓存系统,所述数据缓存系统包括热度缓存区和粒度缓存区;包括:S1、接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;S2、基于所述待查询数据的ID在数据库中获取目标数据;S3、将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据处理的方法及装置、计算设备及计算机可读存储介质。
背景技术
电商平台中的部分数据具体较高的使用频率,比如商品信息、规则配置信息等,通常会将这些热点数据做缓存处理,以防止因硬件配置受限、系统异常等原因造成数据不可访问或访问耗时较长的问题。
到目前为止,缓存技术已普遍的应用于各类软件系统中,对提高系统的稳定性做出了卓越贡献。但是针对一个高频访问的热数据中心的整体缓存机制还缺乏可靠案列。这有不同的业务场景对缓存的要求不同所致,也有着我们较少的从一个系统模块整体的角度来考虑缓存机制设计的原因。
现有技术中使用的大多数缓存设计都有着较为明显的局限性。局限一:局部数据缓存。在局部领域表现良好,但是没有从整体角度看待缓存的成本和效率及价值的关系。比如往往在一个系统内部使用缓存,如果获取缓存失败,可以自己捕获系统异常,做出相应处理,而如果是一个功能模块级的缓存,我们往往需要考虑业务方如果不能及时获取数据造成的后果,如果是强业务依赖的数据获取失败了可能会导致较严重的连锁反应。局限二:缓存一视同仁。开发者在实际开发中一般不会关注缓存的成本,会较少的考虑依据数据价值不同划分不同的缓存层次,往往没有精细化的设计缓存机制,没有做到价值/成本的最大化。
现有技术中存在以下技术问题:由于某种原因,系统崩溃,暂时不可用,引起依赖该数据的各业务线报出数据异常;由于某种数据访问量过大,超出系统硬件配置的处理上限,造成数据访问超时。
综上所述,现有技术中存在的局限成为本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本说明书实施例提供了一种数据处理的方法。本说明书同时涉及一种数据处理的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,本申请提供了一种数据处理的方法,应用于数据缓存系统,所述数据缓存系统包括热度缓存区和粒度缓存区;
所述数据处理的方法包括:
S1、接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;
S2、基于所述待查询数据的ID在数据库中获取目标数据;
S3、将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
可选地,对于所述的方法,还包括:
接收用户的第j查询请求,所述第j查询请求包含待查询数据的ID,其中j>i;
基于所述待查询数据的ID在所述热度缓存区中进行查询具有所述ID的目标数据;
在所述热度缓存区查询到所述目标数据的情况下,将所述目标数据返回至用户,并结束当前查询流程;
在所述热度缓存区未查询到所述目标数据的情况下,则基于所述待查询数据的ID在所述粒度缓存区中进行查询具有所述ID的目标数据;
在所述粒度缓存区查询到所述目标数据的情况下,则基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户;
在所述粒度缓存区未查询到所述目标数据的情况下,则继续执行步骤S2至S3。
可选地,对于所述的方法,在将所述目标数据基于预设存储规则存储于所述粒度缓存区之前,还包括:
为粒度缓存区配置连续的n个层级缓存区,n为大于等于2的正整数;
在所述目标数据为包括至少两种类型的业务数据的组合数据的情况下,将所述目标数据基于预设存储规则存储于所述粒度缓存区中,包括:
以所述目标数据为第一粒度数据并存储于第一层级缓存区;
将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据,将所述第k+1粒度数据存储于第k层级缓存区,其中n≥k≥1,且k为整数;
将k自增1,判断k是否小于等于n;
如果k≤n,则继续执行将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据;否则,结束聚合过程。
可选地,对于所述的方法,所述将所述目标数据基于预设热度规则存储于热度缓存区中,包括:
判断所述目标数据是否符合预设的第一热度规则或预设的第二热度规则;
将符合预设的第一热度规则的目标数据储存于所述热度缓存区中的第一热度缓存区,其中所述第一热度规则包括第一访问频率区间阈值或第一时效时间区间;
将符合预设的第二热度规则的目标数据储存于所述热度缓存区中的第二热度缓存区,其中所述第二热度规则包括第二访问频率区间或第二时效时间区间。
可选地,对于所述的方法,所述基于所述待查询数据的ID在所述热度缓存区中查询目标数据,包括:
基于所述待查询数据的ID在所述第一热度缓存区中查询目标数据;
当在所述第一热度缓存区未查询到所述目标数据的情况下,则在所述第二热度缓存区中查询目标数据。
可选地,对于所述的方法,所述基于所述待查询数据的ID在所述粒度缓存区中查询目标数据,包括:
在所述粒度缓存区的第n层级缓存区的第n粒度数据中查询目标数据;
在第n层级缓存区中未查询到目标数据的情况下,在第k层级缓存区的第k粒度数据中查询目标数据,其中n≥k≥1,且k为整数;
如果在第k层级缓存区未查询到目标数据的条件下,将k自减1,判断k是否小于等于1;
若是,则继续执行在第k层级缓存区的第k粒度数据中查询目标数据;
否则结束查询。
可选地,对于所述的方法,所述数据缓存系统还包括结果集;
所述方法还包括:
将基于所述待查询数据的ID在所述热度缓存区获得的目标数据储存于所述结果集中。
可选地,对于所述的方法,还包括:
在所述热度缓存区和粒度缓存区不可用的情况下,基于所述待查询数据的ID在所述结果集中查询目标数据;
将获得的目标数据返回至用户。
可选地,对于所述的方法,还包括:
在所述粒度缓存区设置有第三访问频率阈值和第三时效时间阈值,对所述粒度缓存区中访问频率小于第三访问频率阈值或时效时间大于第三时效时间阈值的数据进行释放;
在所述热度缓存区设置有第四访问频率阈值和第四时效时间阈值,对所述热度缓存区中访问频率小于第四访问频率阈值或时效时间大于第四时效时间阈值的数据进行释放;
在所述结果集设置有第五访问频率阈值和第五时效时间阈值,对所述结果集中访问频率小于第五访问频率阈值或时效时间大于第五时效时间阈值的数据进行释放。
根据本说明书实施例的第二方面,提供了一种数据处理的装置,包括:
接收模块,被配置为接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;
查询模块,被配置为基于所述待查询数据的ID在数据库中获取目标数据;
处理模块,被配置为将所述目标数据基于预设存储规则存储于粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现所述数据处理的方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述数据处理的方法的步骤。
本说明书提供的一种数据处理的方法,接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;基于所述待查询数据的ID在数据库中获取目标数据;将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
本说明书一实施例实现了将从数据库中获取的目标数据储存于粒度缓存区以及热度缓存区,因此对于数据访问量较频繁的数据可以在所述热度缓存区或粒度缓存区中直接调用目标数据,节省了访问时间,并且降低了数据库的访问压力。
附图说明
图1是本说明书一实施例提供的一种数据处理的方法的流程示意图;
图2a是本说明书一实施例提供的一种数据处理的方法中粒度缓存区中分级缓存的流程示意图;
图2b是本说明书一实施例提供的一种数据处理的方法中粒度缓存区中数据聚合的流程示意图;
图3是本说明书一实施例提供的一种数据处理的方法中热度缓存区的结构示意图;
图4是本说明书一实施例提供的一种数据处理的方法的流程示意图;
图5是本说明书一实施例提供的一种数据处理的方法中在粒度缓存区进行数据查询的流程示意图;
图6a是本说明书一实施例提供的一种数据处理的方法的流程示意图;
图6b是本说明书一实施例提供的一种数据处理的方法的流程示意图;
图6c是本说明书一实施例提供的一种数据处理的方法的流程示意图;
图7是本说明书一实施例提供的一种数据处理的装置的结构示意图;
图8是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
热度缓存区:在本申请中是指用于储存热点数据的缓存区。所述热点数据是指数据访问量大或数据时效性要求较高的数据。
粒度缓存区:在本申请中是指基于数据粒度的大小分为不同层级缓存区进行储存的缓存区。
数据粒度:是指数据仓库中数据的细化和综合程度。一般情况下,根据数据粒度划分标准。在确定数据粒度时:细化程度越高,粒度越小;细化程度越低,粒度越大。
本地缓存:是指将客户机本地的物理内存划分出一部分空间用来缓冲客户机回写到服务器的数据,因其在回写上的突出贡献,因此本地缓存一般称为本地回写。本地缓存概念首次出现是在无盘领域,作为PXD无盘的一项核心技术被广泛应用。该技术将客户机回写的数据不再先写入服务器硬盘,而是将回写数据先写入本地回写缓存,当缓存空间达到一定的阈值时,再将数据回写到服务器。有了本地回写缓存功能之后,可大大降低服务器读写压力和网络负载。
远程缓存:是指使用远程机器的物理内存来缓存客户机查询或回写到服务器上的数据,因为数据存放在远程机器内存中,数据的访问速度会很快,且由于远程缓存通常是一组服务集群,基本上不需要考虑内存大小的因素对缓存数据结构的限制。远程缓存一般也指分布式缓存,分布式缓存能够处理大量的动态数据,因此比较适合应用在Web 2.0时代中的社交网站等需要由用户生成内容的场景。
结果集:是指用来储存查询结果的缓存区域。
聚合:是指“领域驱动设计(DDD)”中的术语:把一组相互关联的对象视为一个整体单元来操作,这个单元叫聚合。
业务数据:在本申请中指具体发生业务的数据,例如供货商名称、交易价格、物料存放的仓库、物料的大小、规格、颜色等对应的数据。
Redis:Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
Cache:是指高速缓冲存储器。它是一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问;凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache。
在本申请中,提供了一种数据处理的方法及装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
实施例一
本实施例提供了一种数据处理的方法,参见图1,图1示出了本实施例提供的数据处理的方法的流程示意图,包括步骤S101至步骤S103。
S101、接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数。
在本申请中,基于订单数据基于业务、地区等信息组合成一个全局唯一ID。在查询数据过程中以所述唯一ID作为索引。
S102、基于所述待查询数据的ID在数据库中获取目标数据。
在本申请中,数据库的类型为关系型数据库。
根据全局唯一ID,可以通过待查询数据的ID在数据库中获取目标数据。
S103、将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
具体地,本实施例提供的数据处理的方法应用于数据缓存系统,所述数据缓存系统包括热度缓存区和粒度缓存区。
其中,热度缓存区在本申请中是指用于储存热点数据的缓存区。所述热点数据是指数据访问量大或数据时效性要求较高的数据。
粒度缓存区在本申请中是指基于数据粒度的大小分为不同层级缓存区进行储存的缓存区。
在本申请中,所述热度缓存区以及所述粒度缓存区是泛指进行缓存的区域,可以采用多种储存数据的方式,而并不特指某个具体的方式。
具体地,在本申请提供的数据处理方法中,设置的热度缓存区以及粒度缓存区中包含的缓存数据存在交叉但并不相同。热度缓存区中的数据范围较广但是数据线之间的关联性、完整性较差,类似一个个独立的“点值”;而粒度缓存区用于储存组合数据,因此数据之间关联性、完整性更强。
进一步地,在本申请提供的数据处理的方法中,将所述目标数据基于预设热度规则存储于所述热度缓存区中,其中所述存储规则根据数据粒度确定。
在实际业务数据中,通常所述的数据不仅仅是某个方面的数据,而是由不同类型的业务数据组合而成。例如,一个订单数据包含:商品名称、采购人名称、供应商名称、发票、发货信息等多个类型的业务数据,基于多个类型的业务数据拼接得到组合数据,例如“办公椅、张三、木腾公司、上海”等多个类型的业务数据构成了整条订单信息,如果仅获取其中的一个类型的业务数据,例如仅获得采购人为“张三”并不能获得完整的订单信息。因此在实际应用中,用户在进行查询时想要获得的目标数据不仅仅是单一类型的数据,而是包括多个类型的业务数据的组合数据。
进一步地,在本实施例提供的数据处理的方法中,在将所述目标数据基于预设存储规则存储于所述粒度缓存区之前,还包括:
为粒度缓存区配置连续的n个层级缓存区,n为大于等于2的正整数。
进一步地,在本实施例提供的数据处理方法中,在所述目标数据为包括至少两种类型的业务数据的组合数据的情况下,将所述目标数据基于预设存储规则存储于所述粒度缓存区中,包括:
以所述目标数据为第一粒度数据并存储于第一层级缓存区;
将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据,将所述第k+1粒度数据存储于第k层级缓存区,其中n≥k≥1,且k为整数;
将k自增1,判断k是否小于等于n;
如果k≤n,则继续执行将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据;否则,结束聚合过程。
如图2a所示,其中,粒度缓存区包括n个相邻的层级缓存区,通过数据库获得的目标数据作为第一粒度数据,在第一层级缓存区中进行缓存;由于在第一粒度数据中包括不同类型的业务数据(例如,产品名称、产地、日期、储存仓库等多个类型的业务数据)的组合数据,因此将第一粒度数据中的两个组合数据基于相同类型的业务数据进行聚合得到第二粒度数据;将第二粒度数据中的两个组合数据基于相同类型的业务数据进行聚合得到第二粒度数据;直至聚合得到第n粒度数据。
例如,图2b所示,以三个层级缓存区为例对数据聚合的过程进行说明,其中,在第一层级缓存区中存在两个第一粒度数据A和B,A包含(供应商名称、价格、采购日期、储存仓库、货物颜色、货物规格)6个类型的业务数据,记为A(a,b,c,d,e,f);B包含(供应商名称、采购日期、生产地址、供应商名称信用等级)4个类型的业务数据,记为B(a’,c’,g,h),可以看出第一粒度数据A和B具有相同类型的业务数据a,a’(供应商名称)和c,c’(采购日期),然后基于上述相同类型的业务数据将A和B进行聚合,聚合后得到第二粒度数据C(a”,b,c”,d,e,f,g,h),其中a”由a和a’聚合得到,c”由c和c’聚合得到,将第二粒度数据C储存于第二层级缓存区中;并且在第二层级缓存区中存在第二粒度数据D(e’,f’,g’,q,m),C和D具有相同类型的业务数据e和e’、f和f’、g和g’,基于相同类型的业务数据将C和D进行聚合,聚合后得到第三粒度数据E(a”,b,c”,d,e”,f”,g”,h,q,m),其中,e”由e和e’聚合得到,f”由f和f’聚合得到,g”由g和g’聚合得到,并将第三粒度数据E储存在第三级缓存区内。
其中,具体聚合的方式根据所述粒度缓存区中存在的每一层级缓存区中设置的聚合函数确定,本申请对此不作限制。
因此从上述示例可以看出,聚合后得到的数据相比于聚合前的数据,基本数据单元变大,例如第二粒度数据的基本数据单元大于第一粒度数据(供应商名称和采购日期两个业务数据方面包含的内容增加),因此粒度增加。基于上述数据聚合的方式在粒度缓存区中进行聚合,直至基于第n-1层级粒度数据进行聚合得到第n粒度数据,将所述第n粒度数据存储于第n层级缓存区。
因此在第一层级缓存区至第n层级缓存区中,第n层级缓存区数据体量最大,即第n层级缓存区中基本数据单元最大,因此数据粒度最大;第一层级缓存区数据体量最小,即第一层级缓存区包含的基本数据单元最小,数据粒度最小,第一层级缓存区包含的数据粒度与数据库中数据粒度基本相同。
具体地,在本申请中所述“体量”是指:具有多个类型的业务数据的组合数据中基本数据单元的大小。
本实施例通过上述“聚合”操作,可以得到不同粒度的缓存数据,并且基于粒度的大小采用不同层级缓存区进行缓存,当在查询数据时,因为在数据粒度大的层级缓存区中开始查询,如果在数据粒度大的层级缓存区中已经查询到目标数据,则不需要向数据粒度较小的层级缓存区进行查询,可以减少查询过程中,数据组合的次数和时间,提高数据响应速度。
进一步地,在本申请提供的数据处理的方法中,将所述目标数据基于预设热度规则存储于所述热度缓存区中,其中,所述热度规则根据数据的访问频率及时效性确定。
通过前述内容可知,通过客户的查询请求首先从数据库中获取到相应的数据作为目标数据。在实际业务数据查询过程中,通常会有一些经常被查询的数据,例如一些热点产品的价格等,或者一些时效性较高的数据,例如三个月内的订单数据比超过12个月的数据更有可能被查询。
因此为了降低对于热点数据直接在数据库中被频繁查询对数据库造成较大的负荷,本申请提供的数据处理的方法设置热度缓存区用来缓存热点数据。
具体地,在本申请中通过设置热度规则来判断热点数据,其中,所述热度规则根据数据的访问频率及时效性确定。
进一步地,在本申请提供的数据的处理方法中,所述将所述目标数据基于预设热度规则存储于热度缓存区中,包括:
判断所述目标数据是否符合预设的第一热度规则或预设的第二热度规则;
将符合预设的第一热度规则的目标数据储存于所述热度缓存区中的第一热度缓存区,其中所述第一热度规则包括第一访问频率区间或第一时效时间区间;
将符合预设的第二热度规则的目标数据储存于所述热度缓存区中的第二热度缓存区,其中所述第二热度规则包括第二访问频率区间或第二时效时间区间。
进一步地,本申请预先设置有第一热度规则和第二热度规则,其中,第一热度规则包括第一访问频率区间或第一时效时间区间,第二热度规则包括第二热度规则包括第二访问频率区间或第二时效时间区间。当目标数据在一段时间内的访问频率达到第一阈值或者时效时间达到第一阈值,例如,热度缓存区中具有预设的第一访问频率区间为大于20次/小时,第二访问频率区间为10~20次/小时。在促销活动期间,某个商品的价格频率达到了22次/小时,即符合第一访问频率区间,属于第一热度数据,则为了避免每次数据查询均访问数据库,可以将该商品的价格数据储存在第一热度缓存区,当再次接收到该数据的查询请求时,可以直接从第一热度缓存区获取目标数据,达到了最快的访问速度,即降低了数据库访问负荷,又提高了用户体验。还存在另外一种情况,在促销活动期间,另一种商品访问频率达到了15次/小时,符合第二访问频率区间但是未达到第一访问频率区间,属于第二热度数据,因此为了提高访问速度,同时不会对增加第一热度缓存区的压力,将该商品的价格在第二热度缓存区进行储存。
通过上述基于数据访问频率的的高低,将目标数据储存于第一热度缓存区或者第二热度缓存区,既可以提高访问速度,降低数据库压力;同时达到以最高的价值/时间比获取数据。
基于实际应用为了降低储存压力,提高热点数据缓存的“性价比”,本申请针对第一热度数据和第二热度数据采用不同的缓存方法,以用最高的价值/时间比获取数据。具体为:第一热度数据存储于第一热度缓存区内;将第二热度数据存储于第二热度缓存区内。
其中,所述第一热度缓存区和第二热度缓存区是泛指进行缓存的区域,而并不特指进行缓存的具体位置等。
在本申请的一个实施例中,所述第一热度缓存区采用本地缓存,因此第一热度数据通过本地缓存进行储存;所述第二热度缓存区采用远程缓存(例如Redis),因此第二热度数据通过远程缓存进行储存。本地缓存的数据访问速度快于远程缓存,并且本地缓存以及远程缓存在进行数据访问时的访问速度均快于数据库,因此节省数据访问时间;同时将符合不同热度规则的第一热度数据和第二热度数据采用不同方式进行缓存,更符合不同热度数据访问的客观规律。
具体地,本地缓存、远程缓存以及数据库之间的区别见表1所示:
进一步地,在实际应用过程中,所述第一热度缓存区以及所述第二热度缓存区中储存的数据存在相互“转换”,具体为:数据的“热度”是会根据时间变化,例如数据B在时刻t1归属于第二热度数据,储存在第二热度缓存区中,但是到时刻t2(t2>t1)时数据A的访问频率变大,已达到第一热度缓存区的标准,此刻数据A会调整到第一热度缓存区中。同理,例如B’在时刻t1’满足第一热度规则,属于第一热度数据并存储于所述第一热度缓存区,但是由于访问频率降低,到时刻t2’(t2‘>t1’)数据B’访问频率已经降低至不满足第一热度规则但是满足第二热度规则,属于第二热度数据,则将数据B’调整至第二热度缓存区之中。
例如图3所示,图3中示出了本申请提供的数据处理的方法中热度缓存区的结构设置,其中,包括独立设置的第一热度缓存区以及第二热度缓存区,并且在所述第一热度缓存区以及所述第二热度缓存区之间存在数据交换。进一步地,通过图3可以看出在数据存储的流程中热度缓存区中的目标数据来源于粒度缓存区。
进一步地,根据不同场景使用时的查询需求,也可以将热度缓存区基于不同的热度规则设置多个不同热度的缓存区,例如设置第三热度缓存区、第四热度缓存区等,本申请对此不做限制。对于不同级别的热度缓存区的储存位置可以根据实际需求进行选择,本申请对此不作限定。
具体地,在本申请提供的数据处理的方法中,缓存技术是指一类可通过物理空间换取时间的计算机技术,不局限于Redis、MemCache等现有的缓存方案,还包括自定义使用cache等物理缓存介质开发的、可供计算机软件程序使用的缓存技术。在实际应用中,可根据实际需求对本申请进行数据缓存采用不同的缓存技术,本申请此不做限定。
进一步地,在本申请中,对于热点数据进行缓存的方式还包括:对于热点数据不进行第一热度数据和第二热度数据的分级缓存,而是采用分布式缓存进行热点数据缓存处理,即将热点数据放到不同的节点上,每个节点数据保存一致,根据访问请求的所在地,计算最短的网络路由,然后从最近的节点获取数据,分散主节点的访问量,以达到最高的访问效率。
本实施例通过上述步骤S101至S103提供了一种数据的处理方法,其中包括热度缓存区和粒度缓存区,对于热点数据以及组合数据采用不同的缓存方式进行缓存,使得本申请提供的数据的处理方法,不仅能够对于热点数据快速进行反应;同时,对于较为复杂的组合数据,还能够减少目标数据的获取和组装时间,提高了系统整体时效性。
实施例二
本实施例提供了一种数据处理的方法,如图4所示,图4示出了本实施例提供的数据处理的方法的流程示意图,包括步骤S401至步骤S408。
本实施例中提供的数据处理的方法,应用于数据缓存系统,所述数据缓存系统包括热度缓存区和粒度缓存区。
S401、接收用户的第i查询请求,所述第i查询请求包含待查询数据的ID,i为正整数。
S402、基于所述待查询数据的ID在数据库中获取目标数据。
S403、将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
上述S401至S403在前述实施例中已经进行了详细说明,因此在本实施例中便不再赘述。
通过上述操作已经得到了包括第一热度缓存区和第二热度缓存区的热度缓存区,以及包括若干个层级缓存区的粒度缓存区。
S404、接收用户的第j查询请求,所述第j查询请求包含待查询数据的ID,其中j>i。
S405、基于所述待查询数据的ID在所述热度缓存区中进行查询具有所述ID的目标数据;
在所述热度缓存区查询到所述目标数据的情况下,执行步骤S406;
在所述热度缓存区未查询到所述目标数据的情况下,执行步骤S407。
S406、将所述目标数据返回至用户,并结束当前查询流程。
S407、基于所述待查询数据的ID继续在所述粒度缓存区中查询目标数据;
在所述热度缓存区查询到所述目标数据的情况下,执行步骤S408;
在所述热度缓存区未查询到所述目标数据的情况下,则继续执行步骤S402至S403。
S408、基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户。
根据上述内容可知,本实施例提供的数据处理的方法中,基于用户的查询请求首先在热度缓存区中进行查询,在未查询到目标数据的情况下,继续在粒度缓存区中进行查询,当在粒度缓存区中查询到目标数据的情况下首先将目标数据基于预设的热度缓存规则储存于热度缓存区内,再从热度缓存区提取所述目标数据并返回至用户,通过上述操作可以在每一次查询时,对热度缓存区中的数据进行补充;并且用户仅和热度缓存区存在数据交互,可以避免多条查询线同时进行查询造成的重复查询,降低系统压力。
进一步地,根据前述内容可知,本申请提供的热度缓存区包括第一热度缓存区以及第二热度缓存区,因此所述基于所述待查询数据的ID在所述热度缓存区中查询目标数据,包括:
基于所述待查询数据的ID在所述第一热度缓存区中查询目标数据;
当在所述第一热度缓存区查询到所述目标数据的情况下,将所述目标数据返回至用户,并结束当前查询流程
当在所述第一热度缓存区未查询到所述目标数据的情况下,则在所述第二热度缓存区中查询目标数据;
当在所述第二热度缓存区查询到所述目标数据的情况下,将所述目标数据返回至用户,并结束当前查询流程。
通过上述操作,通过先查询热度大的数据,在未查询到目标数据的情况下,再向热度小的数据进行查询的操作,可以将查询效果最大化,对于查询次数最为频繁的一些数据,可以从第一热度缓存区中直接获取,反应速度极快;对于次热点的数据可以从第二热度缓存区中直接获取,反应速度较快。因此可以达到访问效率最大化,节省数据访问时间;并且缓解了对于热点数据频繁访问数据库对数据库造成的压力。
进一步地,当在所述热度缓存区未查询到所述目标数据时,基于所述待查询数据的ID在所述粒度缓存区中查询目标数据。
具体地,所述基于所述待查询数据的ID在所述粒度缓存区中查询目标数据,包括:
在所述粒度缓存区的第n层级缓存区的第n粒度数据中查询目标数据;
在第n层级缓存区中未查询到目标数据的情况下,在第k层级缓存区的第k粒度数据中查询目标数据,其中n≥k≥1,且k为整数;
如果在第k层级缓存区未查询到目标数据的条件下,将k自减1,判断k是否小于等于1;
若k≥1,则继续执行在第k层级缓存区的第k粒度数据中查询目标数据;
否则结束查询。
参见图5所示,图5中示出了在粒度缓存区中进行数据查询的流程示意图,具体为:首先在第n层级缓存区中的第n粒度数据中基于目标数据ID进行查询;在第n粒度数据中未查询到目标数据的情况下,继续进入下一层级缓存区中进行查询,如查询到第m层级缓存区中,仍未查询到目标数据,则进入第m-1层级缓存区中进行查询,若一直未查询到目标数据,直至查询到第一层级缓存区进行查询;如果在所述第一层级缓存区仍未查询到目标数据,则进入数据库进行查询。
进一步地,在所述粒度缓存区中,为每一层级缓存区配置数据函数,例如当粒度缓存区包含第一层级缓存区、第二层级缓存区和第三层级缓存区,分别配置数据函数A、数据函数B和数据函数C,当在粒度缓存区中进行查询时,首先利用数据函数C在第三层级缓存区进行查询;当第三层级缓存区未查询到目标数据时,数据函数B在第二层级缓存区进行查询;当第二层级缓存区未查询到目标数据时,数据函数A在第一层级缓存区进行查询。其中,数据函数根据实际应用具体设置,本申请对此不作限制。
本申请提供的数据处理的方法中,通过上述在粒度缓存区内进行分级查询,当在较大粒度数据中能够得到目标数据,则就不必再向较小粒度数据中进行查询,也无需进入数据库中进行查询,能够明显节省数据查询的时间。
S406、将所述目标数据返回至用户,并结束当前查询流程。
进一步地,在本申请提供的数据处理方法中,所述数据缓存系统还包括结果集;
在所述数据处理的方法还包括:将基于所述待查询数据的ID在所述热度缓存区获得的目标数据储存于所述结果集中。
具体地,在本申请中将来源于当所述结果集中已经存在了所述目标数据,则将所述结果集中已经存在的旧的目标数据进行释放,将最新获取的目标数据储存进所述结果集中,以保证结果集中的数据是最新数据;并且能够避免储存多份相同ID的数据,减少重复数据、降低储存压力。
在实际应用时,可能由于某种原因,系统崩溃而造成业务系统的暂时不可用,从而引起依赖该数据的各业务线报出的数据异常。
本申请为了应对系统崩溃的情况,基于查询数据结果构建了缓存查询数据的结果集。将结果集作为查询数据的“备选方案”。
具体地,在本申请提供的数据处理的方法中,还包括:
在所述热度缓存区和粒度缓存区不可用的情况下,基于所述待查询数据的ID在所述结果集中查询目标数据;
将获得的目标数据返回至用户。
本申请提供结果集进行缓存,当系统出现异常、崩溃等情况导致热度缓存区和粒度缓存区在所述数据中心无法使用时,通过在结果集中进行查询可以获取一部分数据,尤其是被频繁访问的热点数据,以此减少系统的整体不可用时间,以较小的代价获取系统更高的稳定可用性。
进一步地,在本申请提供的数据处理的方法还包括:
在所述粒度缓存区设置有第三访问频率阈值和第三时效时间阈值,对所述粒度缓存区中访问频率小于第三访问频率阈值或时效时间大于第三时效时间阈值的数据进行释放;
在所述热度缓存区设置有第四访问频率阈值和第四时效时间阈值,对所述热度缓存区中访问频率小于第四访问频率阈值或时效时间大于第四时效时间阈值的数据进行释放;
在所述结果集设置有第五访问频率阈值和第五时效时间阈值,对所述结果集中访问频率小于第五访问频率阈值或时效时间大于第五时效时间阈值的数据进行释放。
进一步地,在所述粒度缓存区、所述热度缓存区以及所述结果集中设置有内存使用比例阈值,例如80%;当粒度缓存区、热度缓存区或结果集中缓存的数据占用内容比例达到预设的阈值,则当接收到新的缓存数据,基于数据的访问频率的排序,由访问频率最低的缓存数据进行释放,直至内存使用比例小于预设阈值;并且当缓存数据中存在相同ID的数据,则仅保存最新一次缓存的数据,将其余相同的缓存数据进行释放。
通过上述操作,可以维持所述粒度缓存区、所述热度缓存区以及所述结果集中数据为最新数据,并降低储存压力。
进一步地,在本申请提供的热度缓存区、粒度缓存区以及结果集之间可进行灵活组合,不仅仅局限本申请实施例中提供的组合方式,还可根据不同的业务需求灵活组合。本申请对此不作限制。
本实施例提供了一种数据处理的方法,其中包括热度缓存区和粒度缓存区,对于热点数据以及组合数据采用不同的缓存方式进行缓存,使得本申请提供的数据的处理方法,不仅能够对于热点数据快速进行反应;同时,对于较为复杂的组合数据,还能够减少目标数据的获取和组装时间,提高了系统整体时效性。并且设置有结果集,可以在系统出现异常、崩溃等情况导致热度缓存区和粒度缓存区在所述数据中心不可用时,通过在结果集中进行查询可以获取一部分数据,以此减少系统的整体不可用时间,以较小的代价获取系统更高的稳定可用性;并且本申请中各个缓存区可进行灵活组合,不仅仅局限本申请实施例中提供的组合方式,还可根据不同的业务需求灵活组合,充分发挥组合式创新的优势,以达到最优效果。
实施例三
本申请提供了一种数据处理的方法,参见图6a所示,图6a示出了本申请提供的数据处理方法的流程示意图,包括步骤S601至步骤S611。
具体地,在本实施例设置有数据中心,所述数据中心包括粒度缓存区、所述热度缓存区和数据库。
S601、数据中心接收外部各业务线的用户发出查询请求,判断数据中心是否异常;
在所述数据中心不存在异常的情况下执行步骤S602至S610;
在所述数据中心存在异常的情况下执行步骤S611。
例如图6c所示,其中实线箭头指示的是数据中心正常工作时查询流程,虚线箭头指示的是数据中心工作异常时(如系统崩溃等)查询流程,具体为:
数据中心接收到业务线X的用户发出的查询请求,判断数据中心是否异常;
若否,则在数据中心中进行查询获取到目标数据,将所述目标数据返回至用户,同时将目标数据储存在结果集中;
若是,则在结果集中进行查询,将获取的目标数据返回至用户。
具体查询或储存过程如下述步骤所述。
S602、所述数据中心基于所述查询请求得到待查询数据的ID。
S603、基于所述待查询数据的ID在所述热度缓存区中的第一热度缓存区进行查询目标数据;判断是否查询到目标数据:
若查询到目标数据,则执行步骤S608;
若未查询到目标数据,则执行步骤S604。
S604、基于所述待查询数据的ID在所述热度缓存区中的第二热度缓存区进行查询目标数据;判断是否查询到目标数据:
若查询到目标数据,则执行步骤S609;
若未查询到目标数据,则执行步骤S605。
S605、基于所述待查询数据的ID在所述粒度缓存区中进行查询:由第二层级缓存区依次查询到第一层级缓存区(在本实施例中,在所述粒度缓存区以包括第一层级缓存区和第二层级缓存区两个层级缓存区为例进行说明),判断是否查询到目标数据:
若查询到目标数据,则执行步骤S610;
若未查询到目标数据,则执行步骤S606。
S606、基于所述待查询数据的ID进入数据库进行查询,获得具有所述ID的目标数据。
S607、将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,并将所述目标数据储存在结果集中,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
S608、将所述目标数据并返回至用户,并结束当前查询流程。
S609、将所述目标数据并返回至用户,并结束当前查询流程。
S610、基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户。
S611、基于所述查询请求得到待查询数据的ID,在结果集中查询具有所述待查询数据的ID的目标数据,并将查询得到的目标数据返回至用户。
上述步骤的具体过程在前述实施例中已经进行了详细记载,因此在本实施例中不再赘述。
进一步地,如图6b中所示,图6b示出了本实施例提供的数据处理的方法的一个应用示例的流程示意图,其中虚线箭头代表查询流程,实线箭头代表目标数据返回及储存流程包括:
(1)查询流程(虚线箭头表示):数据中心接收来自外部各业务线的查询请求,进入热度缓存区进行查询:首先在热度缓存区中的第一热度缓存区进行查询,在未查询到目标数据时,继续进入第二热度缓存区中进行查询;在第二热度缓存区中未查询到目标数据时,进入粒度缓存区中进行查询:在粒度缓存区中首先在第二层级缓存区中查询,在未查询到目标数据时,继续进入第一层级缓存区中查询;在第一层级缓存区未查询到目标数据时,最终进入数据库进行查询,得到目标数据。
(2)返回及储存流程(实线箭头表示):将从数据库获得的目标数据返回至粒度缓存区:在粒度缓存区中,首先将目标数据作为第一粒度数据储存在第一层级缓存区,然后基于预设的聚合规则,将第一层级缓存区中的第一粒度数据进行聚合得到第二粒度数据,并将第二粒度数据储存于第二层级缓存区中;然后将目标数据从粒度缓存区提取出来并基于预设的热度规则存储于热度缓存区中:符合第一热度规则的目标数据储存于第一热度缓存区,符合第二热度规则的目标数据储存于第二热度缓存区,并且第一热度缓存区和第二热度缓存区之间的数据基于访问频率等的改变在第一热度缓存区和第二热度缓存区中存在数据交换;从热度缓存区中提取目标数据返回至外部业务线,并且将从热度缓存区中提取的目标数据储存至结果集中。
本申请提供了一种数据处理的方法,将结果集缓存和热度缓存、粒度缓存以及数据库查询三种机制的有机结合可以满足绝大多数系统对热数据处理的要求,提高数据查询效率。本申请通过根据业务需求对热点缓存数据的价值进行层级分级:第一热度数据在第一热度缓存区进行缓存,第二热度数据则在第二热度缓存区进行缓存。使得系统在不降低整体性能的情况下,优化缓存结构,降低缓存成本;并且本方案会对数据中心的服务异常情况做“兜底”处理,即对每次访问请求返回的数据进行结果集缓存处理,在发生数据中心服务异常等情况时,造成数据服务暂不可用,此时根据业务线的查询请求会从结果集中查询,得到最近一次访问成功的数据,避免造成业务线查询服务异常或不可用。
实施例四
本实施例提供了一种数据处理的装置,应用于数据缓存系统,所述数据缓存系统包括热度缓存区和粒度缓存区。参见图7所示,图7示出了本申请提供的数据处理的装置的结构图,所述装置包括以下模块:
接收模块701,被配置为接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;
查询模块702,被配置为基于所述待查询数据的ID在数据库中获取目标数据;
处理模块703,被配置为将所述目标数据基于预设存储规则存储于粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
具体地,所述接收模块701,进一步被配置为:
接收用户的第j查询请求,所述第j查询请求包含待查询数据的ID,其中j>i。
所述查询模块702,进一步被配置为:
基于所述待查询数据的ID在所述热度缓存区或粒度缓存区中进行查询是否具有所述ID的目标数据。
在所述热度缓存区查询到所述目标数据的情况下,所述处理模块703,进一步被配置为:
将所述目标数据返回至用户,并结束当前查询流程。
在所述热度缓存区未查询到所述目标数据的情况下,所述查询模块702,进一步被配置为:
基于所述待查询数据的ID在所述粒度缓存区中进行查询具有所述ID的目标数据。
在所述粒度缓存区查询到所述目标数据的情况下,所述处理模块703,进一步被配置为:基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户。
具体地,为粒度缓存区配置连续的n个层级缓存区,n为大于等于2的正整数;
在所述目标数据为包括至少两种业务数据的组合数据的情况下;
所述处理模块703,进一步被配置为:
以所述目标数据为第一粒度数据并存储于第一层级缓存区;
将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据,将所述第k+1粒度数据存储于第k层级缓存区,其中n≥k≥1,且k为整数;
将k自增1,判断k是否小于等于n;
如果k≤n,则继续执行将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据;否则,结束聚合过程。
具体地,所述处理模块703,进一步被配置为:
判断所述目标数据是否符合预设的第一热度规则或预设的第二热度规则;
将符合预设的第一热度规则的目标数据储存于所述热度缓存区中的第一热度缓存区,其中所述第一热度规则包括第一访问频率区间或第一时效时间区间;
将符合预设的第二热度规则的目标数据储存于所述热度缓存区中的第二热度缓存区,其中所述第二热度规则包括第二访问频率区间或第二时效时间区间。
具体地,所述查询模块702,进一步被配置为:
基于所述待查询数据的ID在所述热度缓存区中查询目标数据;
在所述热度缓存区未查询到所述目标数据的情况下,基于所述待查询数据的ID在所述粒度缓存区中查询目标数据。
具体地,所述查询模块702,进一步被配置为:
基于所述待查询数据的ID在所述第一热度缓存区中查询目标数据;
在所述第一热度缓存区未查询到所述目标数据的情况下,则在所述第二热度缓存区中查询目标数据。
具体地,所述查询模块702,进一步被配置为:
在所述粒度缓存区的第n层级缓存区的第n粒度数据中查询目标数据;
在第n层级缓存区中未查询到目标数据的情况下,在第k层级缓存区的第k粒度数据中查询目标数据,其中n≥k≥1,且k为整数;
如果在第k层级缓存区未查询到目标数据的条件下,将k自减1,判断k是否小于等于1;
若是,则继续执行在第k层级缓存区的第k粒度数据中查询目标数据;
否则结束查询。
具体地,所述数据缓存系统还包括结果集;
所述处理模块703,进一步被配置为:
将基于所述待查询数据的ID在所述热度缓存区获得的目标数据储存于所述结果集中。
具体地,所述查询模块702,进一步被配置为:
在所述热度缓存区和粒度缓存区不可用的情况下,基于所述待查询数据的ID在所述结果集中查询目标数据;
将获得的目标数据返回至用户。
具体地,所述处理模块703,进一步被配置为:
在所述粒度缓存区设置有第三访问频率阈值和第三时效时间阈值,对所述粒度缓存区中访问频率小于第三访问频率阈值或时效时间大于第三时效时间阈值的数据进行释放;
在所述热度缓存区设置有第四访问频率阈值和第四时效时间阈值,对所述热度缓存区中访问频率小于第四访问频率阈值或时效时间大于第四时效时间阈值的数据进行释放;
在所述结果集设置有第五访问频率阈值和第五时效时间阈值,对所述结果集中访问频率小于第五访问频率阈值或时效时间大于第五时效时间阈值的数据进行释放。
本实施例提供了一种数据处理的装置,通过所述装置将从数据库中获取的目标数据分别基于预设的粒度规则和预设热度规则储存于粒度缓存区和热度缓存区,因此对于数据访问量较频繁的数据可以在所述热度缓存区和粒度缓存区中直接调用目标数据,节省了访问时间,并且降低了数据库的访问压力。并且将查询得到的目标数据储存于结果集中,可以在系统查询出现崩溃时,通过读取结果集缓存中的该访问请求的缓存数据,使得外部业务方仍可以获取较为准确可用的数据,减少系统的整体不可用时间,以较小的代价获取系统更高的稳定可用性。
上述为本实施例的一种数据处理的装置的示意性方案。需要说明的是,该数据处理的装置的技术方案与上述的数据处理的方法的技术方案属于同一构思,数据处理的装置的技术方案未详细描述的细节内容,均可以参见上述数据处理的方法的技术方案的描述
实施例五
本实施例提供了一种计算设备800,参见图8所示。
图8是示出了根据本说明书一实施例的计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820可以执行前述实施例提供的数据处理的方法中的步骤。具体步骤在本实施例不再赘述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述数据处理的方法中的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述数据处理的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见前述数据处理的方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种数据处理的方法,其特征在于,应用于数据缓存系统,所述数据缓存系统包括热度缓存区和粒度缓存区;
所述数据处理的方法包括:
S1、接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;
S2、基于所述待查询数据的ID在数据库中获取目标数据;
S3、将所述目标数据基于预设存储规则存储于所述粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
2.根据权利要求1所述的方法,其特征在于,还包括:
接收用户的第j查询请求,所述第j查询请求包含待查询数据的ID,其中j>i;
基于所述待查询数据的ID在所述热度缓存区中进行查询具有所述ID的目标数据;
在所述热度缓存区查询到所述目标数据的情况下,将所述目标数据返回至用户,并结束当前查询流程;
在所述热度缓存区未查询到所述目标数据的情况下,则基于所述待查询数据的ID在所述粒度缓存区中进行查询具有所述ID的目标数据;
在所述粒度缓存区查询到所述目标数据的情况下,则基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户;
在所述粒度缓存区未查询到所述目标数据的情况下,则继续执行步骤S2至S3。
3.根据权利要求1所述的方法,其特征在于,在将所述目标数据基于预设存储规则存储于所述粒度缓存区之前,还包括:
为粒度缓存区配置连续的n个层级缓存区,n为大于等于2的正整数;
在所述目标数据为包括至少两种类型的业务数据的组合数据的情况下,将所述目标数据基于预设存储规则存储于所述粒度缓存区中,包括:
以所述目标数据为第一粒度数据并存储于第一层级缓存区;
将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据,将所述第k+1粒度数据存储于第k层级缓存区,其中n≥k≥1,且k为整数;
将k自增1,判断k是否小于等于n;
如果k≤n,则继续执行将具有相同类型的业务数据的两组第k粒度数据基于相同类型的业务数据进行聚合得到第k+1粒度数据;否则,结束聚合过程。
4.根据权利要求2所述的方法,其特征在于,所述将所述目标数据基于预设热度规则存储于热度缓存区中,包括:
判断所述目标数据是否符合预设的第一热度规则或预设的第二热度规则;
将符合预设的第一热度规则的目标数据储存于所述热度缓存区中的第一热度缓存区,其中所述第一热度规则包括第一访问频率区间或第一时效时间区间;
将符合预设的第二热度规则的目标数据储存于所述热度缓存区中的第二热度缓存区,其中所述第二热度规则包括第二访问频率区间或第二时效时间区间。
5.根据权利要求4所述的方法,其特征在于,所述基于所述待查询数据的ID在所述热度缓存区中查询目标数据,包括:
基于所述待查询数据的ID在所述第一热度缓存区中查询目标数据;
当在所述第一热度缓存区未查询到所述目标数据的情况下,则在所述第二热度缓存区中查询目标数据。
6.根据权利要求2所述的方法,其特征在于,所述基于所述待查询数据的ID在所述粒度缓存区中查询目标数据,包括:
在所述粒度缓存区的第n层级缓存区的第n粒度数据中查询目标数据;
在第n层级缓存区中未查询到目标数据的情况下,在第k层级缓存区的第k粒度数据中查询目标数据,其中n≥k≥1,且k为整数;
如果在第k层级缓存区未查询到目标数据的条件下,将k自减1,判断k是否小于等于1;
若是,则继续执行在第k层级缓存区的第k粒度数据中查询目标数据;
否则结束查询。
7.根据权利要求2所述的方法,其特征在于,所述数据缓存系统还包括结果集;
所述方法还包括:
将基于所述待查询数据的ID在所述热度缓存区获得的目标数据储存于所述结果集中。
8.根据权利要求7所述的方法,其特征在于,还包括:
在所述热度缓存区和粒度缓存区不可用的情况下,基于所述待查询数据的ID在所述结果集中查询目标数据;
将获得的目标数据返回至用户。
9.根据权利要求7所述的方法,其特征在于,还包括:
在所述粒度缓存区设置有第三访问频率阈值和第三时效时间阈值,对所述粒度缓存区中访问频率小于第三访问频率阈值或时效时间大于第三时效时间阈值的数据进行释放;
在所述热度缓存区设置有第四访问频率阈值和第四时效时间阈值,对所述热度缓存区中访问频率小于第四访问频率阈值或时效时间大于第四时效时间阈值的数据进行释放;
在所述结果集设置有第五访问频率阈值和第五时效时间阈值,对所述结果集中访问频率小于第五访问频率阈值或时效时间大于第五时效时间阈值的数据进行释放。
10.一种数据处理的装置,其特征在于,包括:
接收模块,被配置为接收用户的第i查询请求,所述第i查询请求包含待查询数据的身份标识号码ID,i为正整数;
查询模块,被配置为基于所述待查询数据的ID在数据库中获取目标数据;
处理模块,被配置为将所述目标数据基于预设存储规则存储于粒度缓存区中,从粒度缓存区提取所述目标数据并基于预设热度规则将所述目标数据存储于所述热度缓存区中,从热度缓存区提取所述目标数据并返回至用户,其中所述存储规则根据数据粒度确定,所述热度规则根据数据的访问频率及时效性确定。
11.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
权利要求1-9任意一项所述数据处理的方法的步骤。
12.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1-9任意一项所述数据处理的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725337.4A CN111858676A (zh) | 2020-07-24 | 2020-07-24 | 一种数据处理的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725337.4A CN111858676A (zh) | 2020-07-24 | 2020-07-24 | 一种数据处理的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858676A true CN111858676A (zh) | 2020-10-30 |
Family
ID=72950598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010725337.4A Pending CN111858676A (zh) | 2020-07-24 | 2020-07-24 | 一种数据处理的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858676A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685454A (zh) * | 2021-03-10 | 2021-04-20 | 江苏金恒信息科技股份有限公司 | 工业数据分级存储系统、方法及工业数据分级查询方法 |
CN113010514A (zh) * | 2021-03-01 | 2021-06-22 | 中国工商银行股份有限公司 | 热加载方法及装置 |
CN113032430A (zh) * | 2021-03-25 | 2021-06-25 | 网易(杭州)网络有限公司 | 一种数据处理方法、装置、介质和计算设备 |
CN113821519A (zh) * | 2020-11-26 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法以及领域驱动设计架构 |
CN114297227A (zh) * | 2021-12-24 | 2022-04-08 | 成都索贝数码科技股份有限公司 | 时序数据库的架构方法、查询方法和时序数据库 |
CN115145716A (zh) * | 2021-03-30 | 2022-10-04 | 中移(苏州)软件技术有限公司 | 数据分配方法及装置、存储介质 |
EP4109293A1 (en) * | 2021-08-04 | 2022-12-28 | Beijing Baidu Netcom Science Technology Co., Ltd. | Data query method and apparatus, electronic device, storage medium, and program product |
CN117539915A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055202A1 (en) * | 2009-08-31 | 2011-03-03 | Heimendinger Scott M | Predictive data caching |
CN108491450A (zh) * | 2018-02-26 | 2018-09-04 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
CN109597915A (zh) * | 2018-09-18 | 2019-04-09 | 北京微播视界科技有限公司 | 访问请求处理方法和装置 |
CN111090705A (zh) * | 2018-10-23 | 2020-05-01 | 杭州海康威视数字技术股份有限公司 | 一种多维数据处理方法、装置及设备、存储介质 |
-
2020
- 2020-07-24 CN CN202010725337.4A patent/CN111858676A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055202A1 (en) * | 2009-08-31 | 2011-03-03 | Heimendinger Scott M | Predictive data caching |
CN108491450A (zh) * | 2018-02-26 | 2018-09-04 | 平安普惠企业管理有限公司 | 数据缓存方法、装置、服务器和存储介质 |
CN109597915A (zh) * | 2018-09-18 | 2019-04-09 | 北京微播视界科技有限公司 | 访问请求处理方法和装置 |
CN111090705A (zh) * | 2018-10-23 | 2020-05-01 | 杭州海康威视数字技术股份有限公司 | 一种多维数据处理方法、装置及设备、存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821519A (zh) * | 2020-11-26 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 一种数据处理方法以及领域驱动设计架构 |
CN113010514A (zh) * | 2021-03-01 | 2021-06-22 | 中国工商银行股份有限公司 | 热加载方法及装置 |
CN113010514B (zh) * | 2021-03-01 | 2024-02-20 | 中国工商银行股份有限公司 | 热加载方法及装置 |
CN112685454A (zh) * | 2021-03-10 | 2021-04-20 | 江苏金恒信息科技股份有限公司 | 工业数据分级存储系统、方法及工业数据分级查询方法 |
CN113032430A (zh) * | 2021-03-25 | 2021-06-25 | 网易(杭州)网络有限公司 | 一种数据处理方法、装置、介质和计算设备 |
CN113032430B (zh) * | 2021-03-25 | 2023-12-19 | 杭州网易数之帆科技有限公司 | 一种数据处理方法、装置、介质和计算设备 |
CN115145716A (zh) * | 2021-03-30 | 2022-10-04 | 中移(苏州)软件技术有限公司 | 数据分配方法及装置、存储介质 |
EP4109293A1 (en) * | 2021-08-04 | 2022-12-28 | Beijing Baidu Netcom Science Technology Co., Ltd. | Data query method and apparatus, electronic device, storage medium, and program product |
CN114297227A (zh) * | 2021-12-24 | 2022-04-08 | 成都索贝数码科技股份有限公司 | 时序数据库的架构方法、查询方法和时序数据库 |
CN117539915A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
CN117539915B (zh) * | 2024-01-09 | 2024-04-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858676A (zh) | 一种数据处理的方法及装置 | |
US11461356B2 (en) | Large scale unstructured database systems | |
US8504556B1 (en) | System and method for diminishing workload imbalance across multiple database systems | |
US20230087447A1 (en) | Data migration method and device | |
CN102656570B (zh) | 用于缓存的方法和服务器 | |
CN104067216A (zh) | 用于实施可扩展数据存储服务的系统和方法 | |
CN111753016A (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
US20180293257A1 (en) | Method for accessing distributed database and distributed data service apparatus | |
CN108616581B (zh) | 基于olap/oltp混合应用的数据存储系统及方法 | |
US11960506B2 (en) | Data processing method and system for cloud platform, and electronic apparatus and storage medium | |
CN114356921A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN110825704A (zh) | 一种读数据方法、写数据方法及服务器 | |
CN111723161A (zh) | 一种数据处理方法、装置及设备 | |
CN115114374B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
WO2017156855A1 (en) | Database systems with re-ordered replicas and methods of accessing and backing up databases | |
EP3061011B1 (en) | Method for optimizing index, master database node and subscriber database node | |
CN113297231A (zh) | 数据库处理方法及装置 | |
CN113934713A (zh) | 一种订单数据索引方法、系统、计算机设备以及存储介质 | |
CN112579633A (zh) | 一种数据检索方法、装置、设备及存储介质 | |
CN107451229B (zh) | 一种数据库查询方法和装置 | |
CN113297168B (zh) | 分布式系统中数据迁移方法及装置 | |
CN113535673A (zh) | 生成配置文件及数据处理的方法和装置 | |
CN114676166B (zh) | 数据处理方法及装置 | |
CN114205363B (zh) | 分布式数据库的集群管理方法及分布式管理系统集群 | |
CN115408464A (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 |