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

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

2022-09-08 00:08:08 来源:中国专利 TAG:


1.本公开涉及互联网技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。


背景技术:

2.存放业务对象数据的对象数据库是每个业务的核心库,比如,存放直播间数据的直播数据库是直播业务的核心库。在实际业务场景中,访问对象数据库的操作十分频繁,比如客户端触发的许多操作或者使用该业务的应用方都会产生调用查询对象数据库的逻辑。而当对象数据库出现故障,将会影响到其核心业务,因此,需要对访问核心对象数据库的请求进行甄别,以防止恶意访问造成的数据库性能下降以及安全性降低。


技术实现要素:

3.本公开提供一种数据处理方法、装置、电子设备及存储介质,本公开的技术方案如下:
4.根据本公开实施例的第一方面,提供一种数据处理方法,包括:
5.接收数据查询请求;数据查询请求包括待查询对象标识;
6.获取可访对象标识区间;可访对象标识区间包括第一可访端点值和第二可访端点值;第一可访端点值大于第二可访端点值;第一可访端点值根据对象标识和第一预估偏差值确定;对象标识表征从预设缓存区中获取的当前最大对象标识;第一预估偏差值按照预设周期更新;
7.当待查询对象标识处于可访对象标识区间内,根据待查询对象标识执行查询操作,返回数据查询结果。
8.在一些可能的实施例中,第二可访端点值根据对象标识和第二预估偏差值确定;获取可访对象标识区间,包括:
9.调用应用端的本地缓存,执行本地获取操作;本地获取操作用于获取第一可访端点值和第二可访端点值;
10.在本地获取操作执行成功的情况下,得到第一可访端点值和第二可访端点值;在本地获取操作执行失败的情况下,调用远端缓存区,从远端缓存区中获取第一预估偏差值和第二预估偏差值;调用预设缓存区,从预设缓存区中获取对象标识;根据对象标识和第一预估偏差值,确定第一可访端点值;根据对象标识和第二预估偏差值,确定第二可访端点值。
11.在一些可能的实施例中,数据处理方法还包括:
12.获取多个预设周期对应的多个对象增量;对象增量根据各预设周期对应的最大对象标识和各预设周期的上一周期对应的最大对象标识确定;多个预设周期包括当前周期;
13.将多个对象增量中数值最大的对象增量作为目标对象增量;
14.基于目标对象增量确定当前周期对应的第一预估偏差值。
15.在一些可能的实施例中,基于目标对象增量确定当前周期对应的第一预估偏差值,包括:
16.将数值最大的对象增量乘以预设参数,得到当前周期对应的第一预估偏差值。
17.在一些可能的实施例中,获取多个预设周期对应的多个对象增量之前,还包括:
18.在每个预设周期内,根据获取的当前预设周期对应的最大对象标识和当前预设周期的上一预设周期对应的最大对象标识,确定当前预设周期对应的对象增量;
19.将当前预设周期对应的对象增量和当前预设周期对应的时间戳,存储至远端缓存区中,以便在按照预设周期更新第一预估偏差值时获取。
20.在一些可能的实施例中,远端缓存区包括多个分片,且各个分片均存储有第一预估偏差值和第二预估偏差值;
21.从远端缓存区中获取第一预估偏差值和第二预估偏差值,包括:
22.从多个分片中任一分片中获取第一预估偏差值和第二预估偏差值。
23.在一些可能的实施例中,根据待查询对象标识执行查询操作,包括:
24.在预设缓存区中,根据待查询对象标识查询对应的对象数据,得到初步查询结果;
25.在初步查询结果指示成功的情况下,得到数据查询结果;在初步查询结果指示失败的情况下,调用对象数据库,从对象数据库中获取待查询对象标识对应的对象数据,得到数据查询结果。
26.根据本公开实施例的第二方面,提供一种数据处理装置,包括:
27.接收模块,被配置为执行接收数据查询请求;数据查询请求包括待查询对象标识;
28.获取模块,被配置为执行获取可访对象标识区间;可访对象标识区间包括第一可访端点值和第二可访端点值;第一可访端点值大于第二可访端点值;第一可访端点值根据对象标识和第一预估偏差值确定;对象标识表征从预设缓存区中获取的当前最大对象标识;第一预估偏差值按照预设周期更新;
29.查询模块,被配置为执行当待查询对象标识处于可访对象标识区间内,根据待查询对象标识执行查询操作,返回数据查询结果。
30.在一些可能的实施例中,第二可访端点值根据对象标识和第二预估偏差值确定;
31.获取模块,还被配置为执行调用应用端的本地缓存,执行本地获取操作;本地获取操作用于获取第一可访端点值和第二可访端点值;
32.获取模块,还被配置为执行在本地获取操作执行成功的情况下,得到第一可访端点值和第二可访端点值;在本地获取操作执行失败的情况下,调用远端缓存区,从远端缓存区中获取第一预估偏差值和第二预估偏差值;调用预设缓存区,从预设缓存区中获取对象标识;根据对象标识和第一预估偏差值,确定第一可访端点值;根据对象标识和第二预估偏差值,确定第二可访端点值。
33.在一些可能的实施例中,数据处理装置还包括:
34.更新模块,被配置为执行获取多个预设周期对应的多个对象增量;对象增量根据各预设周期对应的最大对象标识和各预设周期的上一周期对应的最大对象标识确定;多个预设周期包括当前周期;将多个对象增量中数值最大的对象增量作为目标对象增量;基于目标对象增量确定当前周期对应的第一预估偏差值。
35.在一些可能的实施例中,更新模块,还被配置为执行将数值最大的对象增量乘以
预设参数,得到当前周期对应的第一预估偏差值。
36.在一些可能的实施例中,更新模块,还被配置为执行在每个预设周期内,根据获取的当前预设周期对应的最大对象标识和当前预设周期的上一预设周期对应的最大对象标识,确定当前预设周期对应的对象增量;将当前预设周期对应的对象增量和当前预设周期对应的时间戳,存储至远端缓存区中,以便在按照预设周期更新第一预估偏差值时获取。
37.在一些可能的实施例中,远端缓存区包括多个分片,且各个分片均存储有第一预估偏差值和第二预估偏差值;
38.获取模块,还被配置为执行从多个分片中任一分片中获取第一预估偏差值和第二预估偏差值。
39.在一些可能的实施例中,查询模块,还被配置为执行在预设缓存区中,根据待查询对象标识查询对应的对象数据,得到初步查询结果;在初步查询结果指示成功的情况下,得到数据查询结果;在初步查询结果指示失败的情况下,调用对象数据库,从对象数据库中获取待查询对象标识对应的对象数据,得到数据查询结果。
40.根据本公开实施例的第三方面,提供一种电子设备,包括:
41.处理器;
42.用于存储处理器可执行指令的存储器;
43.其中,处理器被配置为执行指令,以实现本公开实施例第一方面提供的数据处理方法。
44.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例第一方面提供的数据处理方法。
45.根据本公开实施例的第五方面,提供一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从可读存储介质读取并执行计算机程序,使得计算机设备执行本公开实施例第一方面提供的数据处理方法。
46.本公开的实施例提供的技术方案至少带来以下有益效果:
47.通过接收数据查询请求;数据查询请求包括待查询对象标识;获取可访对象标识区间;可访对象标识区间包括第一可访端点值和第二可访端点值;第一可访端点值大于第二可访端点值;第一可访端点值根据对象标识和第一预估偏差值确定;对象标识表征从预设缓存区中获取的当前最大对象标识;第一预估偏差值按照预设周期更新;当待查询对象标识处于可访对象标识区间内,根据待查询对象标识执行查询操作,返回数据查询结果。如此,本公开实施例的数据处理方法可以解决相关技术中存在的恶意访问造成的数据库性能下降以及安全性降低的问题,通过将大量非法的数据查询请求识别出来,可以有效防止服务端资源的浪费,保障数据库的安全性和性能稳定性。
48.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
50.图1是根据一示例性实施例示出的一种应用环境的示意图;
51.图2是根据一示例性实施例示出的一种数据处理方法的流程图;
52.图3是根据一示例性实施例示出的一种数据处理的流程图;
53.图4是根据一示例性实施例示出的一种应用场景的示意图;
54.图5是根据一示例性实施例示出的一种数据处理的流程图;
55.图6是根据一示例性实施例示出的一种数据处理的流程图;
56.图7是根据一示例性实施例示出的一种数据处理装置的框图;
57.图8是根据一示例性实施例示出的一种用于数据处理的电子设备的框图。
具体实施方式
58.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
59.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的第一对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
60.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等),均为经用户授权或者经过各方充分授权的信息。
61.在相关应用场景中,提供某业务服务的服务端包括对象数据库,该对象数据库用于存放该业务涉及的各对象的对象数据,因而对象数据库通常会面临大量的访问,比如对目标对象的查询操作。相关技术中,服务端接收不同的访问端发送的大量数据查询请求,数据查询请求携带访问端所请求查询的目标对象的标识,服务端响应每个数据查询请求,执行数据库查询操作,即调用对象数据库,从对象数据库中获取目标对象的标识的对象数据。在正常情况下,数据查询请求所携带的目标对象的标识是真实存在的,比如合法客户端所发出的数据查询请求,服务端可以正常执行上述查询数据库操作,获得相应的对象数据并返回至合法客户端;而在程序异常或者黑客恶意攻击的情况下,会触发生成一些异常的数据查询请求,即数据查询请求中所携带的目标对象的标识实际上并不存在,服务端执行数据库查询操作后并不会获得任何有效数据,反而导致数据库的每秒查询率(queries per second,qps)增高、查询命中率降低,对数据库的性能以及安全性造成了影响。
62.基于此,本公开提供了一种数据处理方法,以解决相关技术中存在的恶意访问造成的数据库性能下降以及安全性降低的问题。
63.请参阅图1,图1是根据一示例性实施例示出的一种数据处理方法的应用环境的示意图,该应用环境可以包括服务端01和客户端02,服务端01可以向客户端02提供数据查询服务,客户端02和服务端01之间可以通过有线网络或者无线网络连接。
64.在一些可能的实施例中,服务端01接收来自客户端02的数据查询请求;数据查询请求包括待查询对象标识;服务端01获取可访对象标识区间;可访对象标识区间包括第一
可访端点值和第二可访端点值;第一可访端点值大于第二可访端点值;第一可访端点值根据对象标识和第一预估偏差值确定;对象标识表征从预设缓存区中获取的当前最大对象标识;第一预估偏差值按照预设周期更新;当所述待查询对象标识处于所述可访对象标识区间内,服务端01根据所述待查询对象标识执行查询操作,向客户端02返回数据查询结果。
65.其中,上述的服务端01可以包括是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows、unix等。
66.其中,上述的客户端02可以包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、智能可穿戴设备等类型的客户端。也可以为运行于上述客户端的软体,例如应用程序、小程序等。可选的,客户端上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows、unix等。
67.此外,需要说明的是,图1所示的仅仅是本公开提供的数据处理方法的一种应用环境,在实际应用中,还可以包括其他应用环境。
68.图2是根据一示例性实施例示出的一种数据处理方法的流程图,如图2所示,数据处理方法可以应用于图1应用场景中的服务端,包括以下步骤:
69.在步骤s201中,接收数据查询请求;数据查询请求包括待查询对象标识。
70.本公开实施例中,服务端包括数据查询业务服务模块,数据查询业务服务模块执行本公开实施例的步骤s201~s205;服务端还包括对象数据库,对象数据库中存储有不同对象的数据,数据的具体内容与实际应用场景和对象相关。待查询对象标识即待查询的对象的标识,标识是表征对象唯一性的特征,标识可以包括序列号或id号。
71.在一些可能的实施例中,对象的标识是服务端在对象生成时,为将该对象区别于其他对象而采取一定规则所生成的唯一性特征信息,比如基于对象的生成时间,按照递增规则为生成的对象确定id号。
72.在实际应用场景中,比如直播应用场景,对象可以包括直播间,相应的,对象数据库中存储有不同直播间的直播数据,直播数据包括直播间标识、主播信息、观看用户信息、播放画面信息等;待查询对象标识可以是直播间的id号。
73.相关技术中,服务端在提供服务过程中,存在调用对象数据库获取相关对象数据的需求,从而触发相应的数据库操作;比如在直播应用场景中,直播应用后台服务端响应每个用户进入直播间的操作,调用对象数据库,查询该直播间对应的直播数据。
74.在一些可能的实施例中,调用对象数据库获取相关对象数据的需求,可以来源于客户端用户的操作,即数据查询请求可以是基于客户端用户操作生成的。
75.相应的,该实施例中,客户端根据客户端用户操作确定待查询对象标识,然后客户端将携带待查询对象标识的数据查询请求发送至服务端;或者,客户端将用户操作信息发送至服务端,由服务端的预处理模块先根据用户操作信息确定待查询对象标识,基于待查询对象标识生成相应的数据查询请求;然后预处理模块将生成的数据查询请求发送至服务端的数据查询业务服务模块,由数据查询业务服务模块继续执行本公开实施例的步骤s201
~s205。
76.在一些可能的实施例中,调用对象数据库获取相关对象数据的需求,可以来源于服务端自身,即服务端自身包括多个不同的业务服务模块,上述的对象数据库仅是多个不同的业务服务模块中的一个业务服务模块(如上文提及的数据查询业务服务模块)所对应的核心数据库,实际应用中,存在服务端自身的其他业务服务模块调用数据查询业务服务模块的需求,因而,数据查询请求是服务端自身的其他业务服务模块生成的;当然,调用对象数据库获取相关对象数据的需求,也可以来源于其他服务端,即其他服务端生成携带待查询对象标识的数据查询请求,然后发送至本服务端。
77.在上述提到的两种可能的实施例中,正常情况下,数据查询请求中携带的待查询对象标识是真实存在的,但是,实际应用中存在一些异常情况,数据查询请求中携带的待查询对象标识根本不存在。比如,客户端用户通过点击指定页面上展示的某直播间的图像,触发了进入该直播间的操作,客户端将用户操作信息发送至服务端,服务端根据用户操作信息进行解析,而在解析过程中,可能存在由于程序错误导致解析得到错误的直播间id号,即直播间id号根本不存在,而数据查询业务服务模块依然会使用该直播间id号在直播间数据库中进行查询;又比如,黑客恶意地生成一些数据查询请求,这些数据查询请求所携带的待查询对象标识是黑客编纂的,目的在于拖垮本服务端的数据库性能,而数据查询业务服务模块目前无法有效区分哪些数据查询请求来源于黑客。上述的异常情况下,都会导致服务端对象数据库的有限资源会被无意义的请求所占据,导致对象数据库的性能下降,且对对象数据库的安全造成了影响。
78.因而,本公开实施例中,服务端的数据查询业务服务模块接收数据查询请求后,对数据查询请求中的待查询对象标识进行甄别,即通过下述步骤s203~s205,在待查询对象标识确定为可访的对象标识后,才执行调用对象数据库获取相关对象数据。如此,通过对数据查询请求进行初步的筛查,可以将大量非法的数据查询请求识别出来,切断对其请求的响应,可以有效防止服务端资源的浪费,降低数据库qps,提高数据库查询命中率。
79.在步骤s203中,获取可访对象标识区间;可访对象标识区间包括第一可访端点值和第二可访端点值;第一可访端点值大于第二可访端点值;第一可访端点值根据对象标识和第一预估偏差值确定;对象标识表征从预设缓存区中获取的当前最大对象标识;第一预估偏差值按照预设周期更新。
80.本公开实施例中,服务端设有可访对象标识区间,可访对象标识区间用于对数据查询请求中的待查询对象标识进行甄别;可访对象标识区间包括第一可访端点值和第二可访端点值,第一可访端点值大于第二可访端点值,即当待查询对象标识处于[第二可访端点值,第一可访端点值]范围时,认为其对应的数据查询请求是合法的,可以执行后续步骤s205,否则停止执行后续步骤。其中,可访对象标识区间可以是开区间、闭区间或半开区间,根据实际需求确定。
[0081]
本公开实施例中,第一可访端点值作为可访对象标识区间的上界,第一可访端点值根据对象标识和第一预估偏差值确定;其中,对象标识表征从预设缓存区中获取的当前最大对象标识,即对象标识等于当前最大对象标识,由于实际应用中,对象源源不断地在生成,因而当前最大对象标识也不断地在增大;如上文提到的,对象的标识是服务端基于对象的生成时间,并按照递增规则生成的,服务端每生成一个对象的标识时,会将该对象的标识
存放至预设缓存区中,以更新当前预设缓存区中保存的最大的对象的标识。此外,本公开考虑到对象的生成频率非常高,在将当前对象的标识存放至预设缓存区中的过程中也可能会产生新的对象,因而从预设缓存区中获取的当前最大对象标识实际上并不是实际最大的对象标识,从而本公开不直接将当前最大对象标识设为第一可访端点值,而是设置了第一预估偏差值,第一预估偏差值表征实际最大的对象标识与当前最大对象标识之间的差距,第一预估偏差值按照预设周期更新,具体更新方式将在下文详细展开描述,此处暂不赘述;此外,由于对象标识和第一预估偏差值都是动态变化的,因而第一可访端点值也是动态变化的。
[0082]
本公开实施例中,第二可访端点值作为可访对象标识区间的下界,第二可访端点值根据对象标识和第二预估偏差值确定;其中,对象标识的定义如前所述;考虑到实际应用场景中,对于历史对象的访问需求并不大,因此,服务端可根据经验总结得到第二预估偏差值,该第二预估偏差值表征当前最大对象标识与允许访问的最久远的对象的标识之间的差值,对象标识减去第二预估偏差值,即第二可访端点值,也即允许访问的最久远的对象的标识。第二预估偏差值可以是基于经验总结得到的固定值,因而第二可访端点值可以是固定不变的。
[0083]
在一些可能的实施例中,上述步骤s203获取可访对象标识区间,可以包括如图3所示的以下步骤:
[0084]
在步骤301中,调用应用端的本地缓存,执行本地获取操作;本地获取操作用于获取第一可访端点值和第二可访端点值。
[0085]
在步骤303中,确定本地获取操作是否执行成功。
[0086]
在本地获取操作执行成功的情况下,得到第一可访端点值和第二可访端点值。在本地获取操作执行失败的情况下,执行步骤s305~s311。
[0087]
上述的应用端在不同的应用场景中所表征的对象不同,应用端可以指本服务端,也可以指其他服务端。
[0088]
如图4所示,图4是根据一示例性实施例示出的一种应用场景的示意图,包括多个应用端401、本服务端402和远端缓存区403;
[0089]
应用端401的本地缓存中存放有过去从远端缓存区403读取的第一可访端点值和第二可访端点值,应用端401的本地缓存中存放的第一可访端点值和第二可访端点值具有保存时长,保存时长较短,保存时长可以是1秒;超过保存时长时,应用端401的本地缓存可自动删除该记录。如此,可以避免短时间内多次访问远端缓存区的操作,直接从本地缓存中读取时效性较高的第一可访端点值和第二可访端点值,实现可访对象标识区间的快速读取,从而缩短对数据查询请求的甄别时长,可以提高数据处理效率。
[0090]
在步骤s305中,调用远端缓存区,从远端缓存区中获取第一预估偏差值和第二预估偏差值。
[0091]
其中,远端缓存区可以包括redis数据库。如图4所示,本服务端402将按照预设周期更新的第一预估偏差值和预设的第二预估偏差值存放至redis数据库403中,方便不同应用端401从中获取。
[0092]
在步骤s307中,调用预设缓存区,从预设缓存区中获取对象标识。
[0093]
在步骤s309中,根据对象标识和第一预估偏差值,确定第一可访端点值。
[0094]
具体的,将对象标识和第一预估偏差值相加,得到第一可访端点值。
[0095]
在步骤s311中,根据对象标识和第二预估偏差值,确定第二可访端点值。
[0096]
具体的,将对象标识减去第二预估偏差值,得到第二可访端点值。
[0097]
上述的预设缓存区指的是本服务端的预设缓存区,如上文中提到的,服务端每生成一个对象的标识时,会将该对象的标识存放至预设缓存区中,因而,任一应用端调用预设缓存区,可以从预设缓存区中获取当前最大对象标识,即对象标识;然后将对象标识和第一预估偏差值相加,得到第一可访端点值,将对象标识减去第二预估偏差值,得到第二可访端点值。
[0098]
上述实施例中,通过设置一动态更新的第一可访端点值和固定的第二可访端点值,作为可访对象标识区间的上界和下界,可以提高对待查询对象标识的判断的准确性,动态更新的第一可访端点值可以避免合法的待查询对象标识被误判,固定的第二可访端点值可以拦截对久远的对象的数据的访问,以将有限的资源用于实现当前更加重要的业务逻辑,实现服务端资源的合理、有效利用。
[0099]
本公开实施例中,考虑到实际场景中,不同应用端可能同时存在获取第一预估偏差值和第二预估偏差值的需求,在较大的需求量的情况下就会产生一个单一的key,即引起一个热点问题。基于此,在一些可能的实施例中,上述的远端缓存区可以设置有多个分片,且各个分片均存储有第一预估偏差值和第二预估偏差值;
[0100]
则,相应的,上述步骤s305中的从远端缓存区中获取第一预估偏差值和第二预估偏差值,具体可以包括:从多个分片中任一分片中获取第一预估偏差值和第二预估偏差值。
[0101]
一个具体的实施例中,以任一应用端为例,从当前可选的多个分片信息中为该应用端随机选取一个分片信息,应用端基于该随机选取的分片信息组装rediskey,使用组装后的rediskey从对应的分片中获取第一预估偏差值和第二预估偏差值。
[0102]
如此,通过远端缓存区设置的多个分片,将第一预估偏差值和第二预估偏差值进行冗余缓存,以应对突发情况下,热点导致的redis性能下降的问题。
[0103]
在一些可能的实施例中,本公开实施例的数据处理方法还包括:根据预设周期更新第一预估偏差值;其中,预设周期可以是1分钟,即每1分钟计算并得到新的第一预估偏差值;
[0104]
上述根据预设周期更新第一预估偏差值,可以包括如图5所示的以下步骤:
[0105]
在步骤s501中,获取多个预设周期对应的多个对象增量;对象增量根据各预设周期对应的最大对象标识和各预设周期的上一周期对应的最大对象标识确定;多个预设周期包括当前周期。
[0106]
当预设周期为1分钟时,每隔1分钟执行步骤s501~s505,得到更新的第一预估偏差值。以得到当前周期对应的第一预估偏差值为例,首先获取包括当前周期在内的多个预设周期对应的多个对象增量,对象增量根据各预设周期对应的最大对象标识和各预设周期的上一周期对应的最大对象标识确定。具体的,对象增量可以是各预设周期对应的最大对象标识减去各预设周期的上一周期对应的最大对象标识的差值。
[0107]
在步骤s503中,将多个对象增量中数值最大的对象增量作为目标对象增量。
[0108]
在步骤s505中,基于目标对象增量确定当前周期对应的第一预估偏差值。
[0109]
其中,多个对象增量的具体数量可以根据实际需求确定;比如筛选出最近1小时的
对象增量,则根据预设周期的时长计算可知,1小时对应60个对象增量,从该60个对象增量中选取数值最大的对象增量作为目标对象增量,然后基于目标对象增量确定当前周期对应的第一预估偏差值;从而,在后续确定可访对象标识区间的第一可访端点值时,在当前最大对象标识的基础上,加上当前周期对应的第一预估偏差值,可以得到最新的第一可访端点值。
[0110]
在一个具体的实施例中,上述基于目标对象增量确定当前周期对应的第一预估偏差值,可以包括:将数值最大的对象增量乘以预设参数,得到当前周期对应的第一预估偏差值。
[0111]
上述实施例中,考虑到不同时间段下,对象增量的增长幅度是不同的,实际应用中在特定时间段下,每分钟的对象增量较其他时间段大,因而通过统计多个周期对应的多个对象增量,从多个对象增量中选取出目标对象增量,并基于目标对象增量确定当前周期对应的第一预估偏差值。如此,通过动态调整第一预估偏差值,以获得更加准确、贴合实际情况的第一可访端点值,可以提高待查询对象标识的判断准确度,以避免合法待查询对象标识被误判。
[0112]
在一些可能的实施例中,步骤s501获取多个预设周期对应的多个对象增量之前之前,本公开实施例的数据处理方法还可以包括以下步骤:
[0113]
在步骤s5001中,在每个预设周期内,根据获取的当前预设周期对应的最大对象标识和当前预设周期的上一预设周期对应的最大对象标识,确定当前预设周期对应的对象增量;
[0114]
在步骤s5003中,将当前预设周期对应的对象增量和当前预设周期对应的时间戳,存储至远端缓存区中,以便在按照预设周期更新第一预估偏差值时获取。
[0115]
具体的,将获取的当前周期对应的最大对象标识减去当前周期的上一周期对应的最大对象标识,即可得到当前周期对应的对象增量;然后将当前周期对应的对象增量和当前周期对应的时间戳按照zset数据格式存储至远端缓存区中,其中,当前周期对应的对象增量以及当前周期对应的最大对象标识为zset数据格式中的value值,当前周期对应的时间戳作为zset数据格式中的score值。
[0116]
在各预设周期中,均按照上述步骤s5001~s5003将各预设周期对应的对象增量和时间戳以zset数据格式存储在远端缓存区中,使得后续步骤s503中,可以基于各预设周期对应的时间戳,来选取对应的对象增量。
[0117]
下面通过一个具体的例子对上述实施例进行说明。假设当前周期对应的最大对象标识为10000,当前周期的上一周期对应的最大对象标识为9000;则,当前周期对应的对象增量是1000,相应的,当前周期对应的zset数据中value值可以表示为1000_10000,时间戳假设是10:00:00;下面,示例性的给出远端缓存区中存储的多个周期对应的zset数据:
[0118]“value”:“1000_10000”,“score”:“10:00:00”;
[0119]“value”:“2000_9000”,“score”:“9:59:00”;
[0120]“value”:“500_7000”,“score”:“9:58:00”;
[0121]
……
[0122]“value”:“1500_3000”,“score”:“9:01:00”[0123]
为了方便解释说明,上述例子中仅详细示出了1个小时内的4个周期的zset数据,
其余56个未示出;假设该1小时内60个周期中最大的对象增量为当前周期的上一周期对应的对象增量2000,则将该2000作为目标对象增量,将2000乘以预设参数得到当前周期对应的第一预估偏差值。
[0124]
在步骤s205中,当待查询对象标识处于可访对象标识区间内,根据待查询对象标识执行查询操作,返回数据查询结果。
[0125]
本公开实施例中,服务端的数据查询业务服务模块判断待查询对象标识是否处于可访对象标识区间内;若待查询对象标识处于可访对象标识区间内,表示待查询对象标识是真实存在的,即数据查询请求是合法的,则根据待查询对象标识执行查询操作,然后向访问端(客户端/本服务端的其他业务服务模块/其他服务端)返回数据查询结果;或者,若待查询对象标识不处于可访对象标识区间内,表示待查询对象标识实际并不存在,即数据查询请求是非法的,则不执行后续步骤,数据处理终止。
[0126]
在一些可能的实施例中,判断待查询对象标识是否处于可访对象标识区间内,即判断待查询对象标识是否大于等于第二可访端点值,且小于等于第一可访端点值。
[0127]
在一些可能的实施例中,上述根据待查询对象标识执行查询操作,可以包括如图6所示的以下步骤:
[0128]
在步骤s601中,在预设缓存区中,根据待查询对象标识查询对应的对象数据,得到初步查询结果。
[0129]
服务端的预设缓存区中,存储有过去已成功执行过查询操作的待查询对象标识和对应的对象数据,因而,数据查询业务服务模块可以先在预设缓存区中进行初步查询,即根据当前待查询对象标识查询其是否已存在,并得到初步查询结果。
[0130]
在步骤s603中,确定初步查询结果是否指示成功。
[0131]
在初步查询结果指示成功的情况下,得到数据查询结果;在初步查询结果指示失败的情况下,执行步骤s605。
[0132]
具体的,若当前待查询对象标识查询已存在,则初步查询结果包括当前待查询对象标识查询对应的对象数据,指示查询成功,初步查询结果即最终的数据查询结果。若当前待查询对象标识查询不存在,则初步查询结果包括查询失败的指示信息,并执行步骤s605。
[0133]
在步骤s605中,调用对象数据库,从对象数据库中获取待查询对象标识对应的对象数据,得到数据查询结果。
[0134]
若预设缓存区不存在当前待查询对象标识,则数据查询业务服务模块回源对象数据库,调用对象数据库,根据当前待查询对象标识从对象数据库中获取对应的对象数据,得到数据查询结果。
[0135]
上述实施例中,过去已成功执行过查询操作的待查询对象标识和对应的对象数据存放在预设缓存区中,可以快速响应针对同一待查询对象的数据查询请求,即服务端直接从预设缓存区中读取数据查询结果,而不必再重复执行多次查询操作,可以降低对象数据库的访问频次,如此,可以提高数据读取效率,从而可以提高服务端对请求的响应速度,同时可以保证对象数据库的性能稳定性。进一步可选的实施例中,预设缓存区可以针对过去已成功执行过查询操作的待查询对象标识和对应的对象数据设置保存时长,在超过保存时长后,预设缓存区自动删除相应的对象数据的记录,从而释放缓存以避免资源的占用。
[0136]
综上,本公开实施例中,服务端的数据查询业务服务模块通过上述步骤s201~
s205,对数据查询请求中的待查询对象标识进行甄别,在待查询对象标识确定为可访的对象标识后,才执行调用对象数据库获取相关对象数据,实现了数据查询请求的初步筛查,如此,可以将大量非法的数据查询请求识别出来,切断对其请求的响应,进而可以有效防止服务端资源的浪费,保障数据库的安全性并降低数据库qps、提高数据库查询命中率。
[0137]
图7是根据一示例性实施例示出的一种数据处理装置框图。参照图7,该装置包括接收模块701、获取模块702和查询模块703;
[0138]
接收模块701,被配置为执行接收数据查询请求;数据查询请求包括待查询对象标识;
[0139]
获取模块702,被配置为执行获取可访对象标识区间;可访对象标识区间包括第一可访端点值和第二可访端点值;第一可访端点值大于第二可访端点值;第一可访端点值根据对象标识和第一预估偏差值确定;对象标识表征从预设缓存区中获取的当前最大对象标识;第一预估偏差值按照预设周期更新;
[0140]
查询模块703,被配置为执行当待查询对象标识处于可访对象标识区间内,根据待查询对象标识执行查询操作,返回数据查询结果。
[0141]
在一些可能的实施例中,第二可访端点值根据对象标识和第二预估偏差值确定;
[0142]
获取模块702,还被配置为执行调用应用端的本地缓存,执行本地获取操作;本地获取操作用于获取第一可访端点值和第二可访端点值;
[0143]
获取模块702,还被配置为执行在本地获取操作执行成功的情况下,得到第一可访端点值和第二可访端点值;在本地获取操作执行失败的情况下,调用远端缓存区,从远端缓存区中获取第一预估偏差值和第二预估偏差值;调用预设缓存区,从预设缓存区中获取对象标识;根据对象标识和第一预估偏差值,确定第一可访端点值;根据对象标识和第二预估偏差值,确定第二可访端点值。
[0144]
在一些可能的实施例中,数据处理装置还包括:
[0145]
更新模块,被配置为执行获取多个预设周期对应的多个对象增量;对象增量根据各预设周期对应的最大对象标识和各预设周期的上一周期对应的最大对象标识确定;多个预设周期包括当前周期;将多个对象增量中数值最大的对象增量作为目标对象增量;基于目标对象增量确定当前周期对应的第一预估偏差值。
[0146]
在一些可能的实施例中,更新模块,还被配置为执行将数值最大的对象增量乘以预设参数,得到当前周期对应的第一预估偏差值。
[0147]
在一些可能的实施例中,更新模块,还被配置为执行在每个预设周期内,根据获取的当前预设周期对应的最大对象标识和当前预设周期的上一预设周期对应的最大对象标识,确定当前预设周期对应的对象增量;将当前预设周期对应的对象增量和当前预设周期对应的时间戳,存储至远端缓存区中,以便在按照预设周期更新第一预估偏差值时获取。
[0148]
在一些可能的实施例中,远端缓存区包括多个分片,且各个分片均存储有第一预估偏差值和第二预估偏差值;
[0149]
获取模块702,还被配置为执行从多个分片中任一分片中获取第一预估偏差值和第二预估偏差值。
[0150]
在一些可能的实施例中,查询模块703,还被配置为执行在预设缓存区中,根据待查询对象标识查询对应的对象数据,得到初步查询结果;在初步查询结果指示成功的情况
下,得到数据查询结果;在初步查询结果指示失败的情况下,调用对象数据库,从对象数据库中获取待查询对象标识对应的对象数据,得到数据查询结果。
[0151]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0152]
图8是根据一示例性实施例示出的一种用于数据处理的电子设备的框图。
[0153]
该电子设备可以是服务器,还可以是终端设备,其内部结构图可以如图8所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
[0154]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0155]
在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中的数据处理方法。
[0156]
在示例性实施例中,还提供了一种计算机可读存储介质,当该计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例中的数据处理方法。
[0157]
在示例性实施例中,还提供了一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从可读存储介质读取并执行计算机程序,使得计算机设备执行本公开实施例的数据处理方法。
[0158]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0159]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0160]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并
且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

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

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

相关文献