一种数据处理方法及装置与流程

文档序号:31791030发布日期:2022-10-14 15:13阅读:44来源:国知局
一种数据处理方法及装置与流程

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.图1是本发明一个实施例提供的一种数据处理方法的流程示意图;
41.图2是本发明另一个实施例提供的一种数据处理方法的流程示意图;
42.图3是本发明又一个实施例提供的一种数据处理方法的流程示意图;
43.图4是本发明一个实施例提供的一种数据处理装置的结构示意图;
44.图5是本发明实施例可以应用于其中的示例性系统架构图;
45.图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
46.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
47.需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
48.如图1所示,本发明实施例提供了一种数据处理方法,该方法可以包括以下步骤s101至s103:
49.步骤s101:获取数据处理请求;所述数据处理请求指示了待处理数据标识。
50.步骤s102:在第一本地缓存为空或所述第一本地缓存中的数据过期的情况下,利用第一进程从分布式缓存中读取与所述待处理数据标识对应的目标数据。
51.步骤s103:在读取结果为失败的情况下,利用第二进程根据第二本地缓存中的数据响应所述数据处理请求,所述分布式缓存中的数据与所述第二本地缓存中的数据是所述第二进程定时从数据库同步的;所述第一进程和所述第二进程异步执行。
52.本发明的一个应用场景是在对用户提出的数据处理请求进行处理之前,对用户的鉴权数据进行查询的场景。其中,鉴权数据可以包括用户信息及用户操作业务平台各个功能的权限信息等的数据。在具体应用场景中,鉴权数据通常是在业务平台中进行配置后保存至数据库中的。对于大量用户同时发送数据处理请求时,业务平台需要先对用户分别进行鉴权数据的获取,以确定用户是否具有操作某一业务功能的权限;在确定用户的鉴权数据存在且在有效期内的情况下,对用户提出的数据处理请求进行下一步的处理;如果鉴权
数据不存在或者鉴权数据已过期,那么可以直接停止对数据处理请求的响应,从而阻止不合规的用户或没有权限的用户操作相应的业务功能。
53.在以鉴权数据查询的场景为例,数据处理请求中的待处理数据标识可以是用户在业务平台中的账号标识。与账号标识对应的目标数据,可以是该账号标识对应的鉴权数据。为了避免每一次根据账户标识获取鉴权数据时,均从数据库中读取,提高读取鉴权数据的效率,可以先利用第一进程尝试从第一本地缓存读取,再利用第一进程尝试从分布式缓存中读取。在分布式缓存读取结果为失败的情况下,也即可能出现分布式缓存发生故障时,则利用第二进程从第二本地缓存中读取,第二本地缓存也是通过第二进程定时从数据库中读取同步得到。
54.其中,第一进程与第二进程可以是运行在同一服务器上的两个进程,也可是运行在不同服务器上的两个进程。
55.在本发明的一个实施例中,优选地采用以下方式:所述第一进程和所述第二进程分别运行在第一服务器和第二服务器上,所述第一本地缓存和所述第二本地缓存分别为所述第一服务器和所述第二服务器上的本地缓存。将第一进程与第二进程配置在不同的服务器中,可以避免一个服务器出现故障后,无法对数据处理请求进行处理的情况,从而保证了数据处理的正常执行。
56.其中,分布式缓存可以是一个部署在多个服务器上的基于redis存储的分布式缓存;第一本地缓存中的数据是定时从分布式缓存中同步而得到的,具体地可以如本发明的一个实施例提供的以下方式:设置第一定时任务;根据所述第一定时任务,利用所述第一进程将所述分布式缓存中的数据同步至所述第一本地缓存,并对所述第一本地缓存中的数据设置过期时间。
57.其中,第一定时任务可以是在第一进程运行的服务器上设置的定时任务。分布式缓存中的数据是定时与数据库中的数据进行同步的,因此,分布式缓存中的数据始终比第一本地缓存中的数据新,利用第一定时任务进行同步,可以使得大部分的数据处理请求都能从第一本地缓存中读取目标数据,减少了从分布式缓存中读取数据而产生的网络消耗,进而提高读取数据的速度。另外,还可以对第一本地缓存中的数据设置一个过期时间,以保证对鉴权数据进行过期时间的判断,防止获取到过期的鉴权数据而产生不安全的用户操作的情况。可以理解的是,在每一次从分布式缓存中同步数据至第一本地缓存之后,第一本地缓存中数据的过期时间也可以根据当前时间进行更新,以保证数据的过期时间动态更新,避免出现数据批量过期的情况。
58.可以理解的是,业务平台可以对用户的鉴权数据进行修改、增加及删除,这些变更的鉴权数据会被保存至数据库中,为了保证大部分情况下,从分布式缓存中读取到的数据是变更后的数据,这些变更数据可以采用本发明的一个实施例提供的以下方式定时同步至分布式缓存以及第二本地缓存中:设置第二定时任务;根据所述第二定时任务,利用所述第二进程从所述数据库中读取变更数据;将所述变更数据存储至所述第二本地缓存,并同步至所述分布式缓存中。其中,第二定时任务可以是在第二进程运行的服务器上设置的定时任务。
59.第一本地缓存的读取、分布式缓存的读取以及第一本地缓存的同步使用的是第一进程,而分布式缓存和第二本地缓存的同步使用的是第二进程,且读取数据库的操作也在
第二进程中执行;第二进程可以配置远程rpc调用接口;由此,第一进程主要是进行数据处理操作的进程,第二进程主要是进行对数据库的操作和数据同步的进程,且第二进程在第一进程出现故障时,可以提供rpc调用服务以继续进行数据处理操作,由此,第二进程可以作为一个兜底和降级的备用方式,提高了数据处理的可靠性。
60.可以理解的是,为了保证第一本地缓存中存储的数据总是能定时更新,可以将第一定时任务的执行周期设置得较为频繁,以保证第一本地缓存及时通过第一进程从分布式缓存中同步变更数据,尽可能的避免第一本地缓存中的数据发生批量过期的情况,从而尽可能的保证数据处理请求均能由第一本地缓存进行响应。
61.在本发明的一个实施例中,在所述第一本地缓存不为空且所述第一本地缓存中的数据未过期的情况下,利用所述第一进程确定所述第一本地缓存中是否存在所述目标数据;如果否,停止执行所述数据处理请求。
62.也就是说,如果出现第一本地缓存中存在数据且数据均未过期,但在第一本地缓存中查询不到与待处理数据标识对应的目标数据,可能是变更数据还没有从分布式缓存中同步至第一本地缓存中,例如业务平台对用户的鉴权数据刚进行了修改,变更数据还未同步,用户立即提出了数据处理请求,此时无法立刻获得该用户的鉴权数据,还有可能是本次数据处理请求是恶意请求,例如请求的是不存在的鉴权数据,针对这两种可能的情况,为了安全考虑,停止执行本次数据处理请,可以返回没有权限或非法请求的提示信息给用户,以便于用户在需要时再次提出数据处理请求。
63.在本发明的一个实施例中,在从分布式缓存中读取数据的读取结果为成功的情况下,包括:根据所述分布式缓存中的目标数据响应所述数据处理请求,并将所述目标数据同步至所述第一本地缓存。
64.在本发明的一个实施例中,从分布式缓存中读取数据的读取结果为失败的情况下,利用第二进程根据第二本地缓存中的数据响应所述数据处理请求,包括:确定所述第二本地缓存中是否存在所述目标数据;如果是,确定所述目标数据是否过期;如果是,利用获取到分布式锁的线程,从数据库中获取所述目标数据,将获取到的所述目标数据存储至所述第二本地缓存中,并根据获取到的所述目标数据响应所述数据处理请求。
65.在本发明的一个实施例中,第二本地缓存还可以与以下方式等价:在第二进程中,在第二定时任务从数据库中读取数据并写入分布式缓存之后,增加一个消息队列,发送广播消息,第一进程可以通过监听这些广播消息,从分布式缓存中获取最新的数据来更新第一本地缓存,从而使得可以通常情况下,均能从第一本地缓存中获取最新数据,减少了从数据库读取数据的情况,提高了数据处理的效率。
66.下面结合图2及图3,对本发明实施例提供的一种数据处理方式进行详细描述。
67.图2是本发明另一个实施例提供的一种数据处理方法的流程示意图;其主要是在第一进程启动过程中,对第一本地缓存、分布式缓存进行数据载入和同步的过程,可以包括以下步骤:
68.步骤s201:开始,判断分布式缓存是否读取正常;第一进程启动后,第一本地缓存开始初始化,并开始加载数据;可以先去分布式缓存中读取数据,如果读取正常,则执行s202,如果异常,则执行步骤s203。
69.步骤s202:从分布式缓存读取数据,存入第一本地缓存并设置过期时间;为读取到
的数据设置过期时间,如果在同一时间读取到的多个数据可以设置同一个过期时间,也可以根据数据的不同,设置不同的过期时间。
70.步骤s203:第二进程判断第二本地缓存是否为空或已过期;如果分布式缓存读取数据异常,例如,在redis分布式缓存发生故障导致读取数据失败时,可以通过rpc调用第二进程,第二进程判断第二本地缓存是否为空,或者数据是否已过期,如果是,执行步骤s205,如果否,说明第二本地缓存中有数据,执行s204。
71.步骤s204:第二进程从第二本地缓存中读取数据,随后执行步骤s206。
72.步骤s205:第二进程执行本地加锁,从数据库中读取数据写入第二本地缓存,并设置过期时间;随后执行s206第二进程可以包括多个执行线程,为了避免多个线程同时读取数据库,减少对数据库的连接数量,可以设置分布式锁,利用第二进程中获取到分布式锁的线程从数据库中读取数据,然后写入第二本地缓存,并设置数据的过期时间;同时,将数据返回到第一进程;而未获得分布式锁的线程则轮循第二本地缓存,直至查询到数据或直到获取到分布式锁后再去数据库中读取数据。
73.步骤s206:第一进程将第二进程返回的数据写入第一本地缓存,并设置数据的过期时间,结束流程。
74.步骤s207:在第一进程启动后,触发第二进程的定时任务,从数据库读取数据写入分布式缓存和第二本地缓存;其中,第二进程可以设置定时任务(也即第二定时任务),每隔固定周期,自动调起读取数据库的任务;第二服务器可以是由多个第二进程所在的服务器组成的一个小集群,为了防止每个进程同时读取数据库中的数据,可以先使用分布式锁锁定,每次由一个获取到分布式锁的进程从数据库读取数据,防止并发访问数据库导致的数据库连接数过大的问题,从而保证了数据库的稳定性);数据读取后可以先放到分布式缓存中,再放到第二本地缓存中,并设置数据的过期时间。
75.图3是本发明又一个实施例提供的一种数据处理方法的流程示意图;以对用户进行鉴权数据查询为例,其主要是在用户发送数据处理请求之后,利用第一本地缓存、分布式缓存、第二本地缓存及数据库进行鉴权数据查询的过程,可以包括以下步骤:
76.步骤s301:开始,获取数据处理请求;数据处理请求中指示了待处理数据标识,例如用户的账户标识等。
77.步骤s302:判断第一本地缓存是否为空或已过期;第一本地缓存可能由于所在的第一服务器重启或被清理等原因导致数据为空,或者由于分布式缓存同步故障导致数据没有同步,也就是导致了数据已过期的情况。如果是,执行步骤s303;如果否,执行步骤s309。
78.步骤s303:判断从分布式缓存读取数据是否成功;也即确定分布式缓存中是否存在目标数据(与待处理数据标识对应的数据),如果是,执行s308,如果否,执行步骤s304。
79.步骤s304:在从分布式缓存读取数据失败时,调用第二进程,判断第二本地缓存是否存在目标数据,且目标数据未过期;如果是,执行步骤s305,如果否,执行步骤s306。
80.步骤s305:从第二本地缓存中读取目标数据,并返回第一进程,执行步骤s310;通过设置第二本地缓存,减少了访问数据库的频率和次数,降低了数据库的并发压力。
81.步骤s306:在第二本地缓存不存在目标数据时,本地加锁,从数据库中读取目标数据写入第二本地缓存,设置过期时间,随后执行步骤s307;如果同时接收了多个数据处理请求,第二进程的多个线程都需要从数据库中查询对应的目标数据,每一次由获取到分布式
锁的线程从数据库读取数据,减少数据库的并发连接数量,而未获取到锁的线程可以轮循第二本地缓存查询目标数据,或者等待分布式锁释放后尝试获取分布式锁再从数据库中读取数据。
82.步骤s307:将目标数据返回第一进程;将从数据库中读取到的目标数据返回第一进程,执行步骤s310。
83.步骤s308:从分布式缓存读取数据成功时,从分布式缓存中读取目标数据,并写入第一本地缓存,设置过期时间,随后执行步骤s310。
84.步骤s309:在第一本地缓存中有数据且数据未过期的情况下,判断第一本地缓存是否存在目标数据;如果是,执行步骤s310,如果否,执行步骤s311。
85.步骤s310:获取到目标数据,继续执行后续操作,直到流程结束。例如,在获取到用户对应的鉴权数据之后,可以根据鉴权数据对用户的数据处理请求进行响应,以保证用户操作业务平台的权限和安全性。
86.步骤s311:如果步骤s309查询不到目标数据,返回非法请求或没有权限的提示信息给用户,结束当前数据处理请求。
87.步骤s312:在第一进程中,设置第一定时任务,定时从分布式缓存中读取数据同步至第一本地缓存中。
88.步骤s313:在第二进程中,设置第二定时任务,定时从数据库中读取变更数据写入分布式缓存和第二本地缓存;其中,变更数据可以是根据业务需求修改变更的数据,例如,在鉴权场景下,在配置模块中对某一用户的权限进行变更,可以将变更后的鉴权数据写入数据库后,第二定时任务可以根据数据库中的数据变更广播消息,将这些变更数据从数据库中读取出来,写入第二本地缓存的同时写入分布式缓存中。
89.根据本发明实施例提供一种数据处理方法,优先从第一本地缓存或分布式缓存中读取数据响应数据处理请求,提高了数据处理请求的响应速度和效率,减少了并发连接数据库的情况;当从分布式缓存中读取数据失败时,利用异步执行的第二进程从第二本地缓存中读取数据,提高了数据处理效率,进一步减少了从数据库中读取数据的频率,从而减少了数据处理请求穿透至数据库进行查询的情况,保证了数据库的性能,进而保证了数据库的稳定性。
90.进一步地,利用第二进程中获取到分布式锁的线程从数据库中读取数据并同步至分布式缓存和第二本地缓存,可以将连接数据库的进程与读取分布式缓存的进程分开;由此,在高并发的情况下,降低了数据库的连接数,避免了由于数据库连接数过大导致数据读取失败的情况,从而保证了从数据库读取数据的稳定性和成功率。
91.如图4所示,本发明实施例提供了一种数据处理装置400,包括:获取模块401、第一处理模块402和第二处理模块403;其中,
92.所述获取模块401,用于获取数据处理请求;所述数据处理请求指示了待处理数据标识;
93.所述第一处理模块402,用于在第一本地缓存为空或所述第一本地缓存中的数据过期的情况下,利用第一进程从分布式缓存中读取与所述待处理数据标识对应的目标数据;
94.所述第二处理模块403,用于在读取结果为失败的情况下,利用第二进程根据第二
本地缓存中的数据响应所述数据处理请求,所述分布式缓存中的数据与所述第二本地缓存中的数据是所述第二进程定时从数据库同步的;所述第一进程和所述第二进程异步执行。
95.在本发明一个实施例中,所述第一处理模块402,用于在所述第一本地缓存不为空且所述第一本地缓存中的数据未过期的情况下,利用所述第一进程确定所述第一本地缓存中是否存在所述目标数据;如果否,停止执行所述数据处理请求。
96.在本发明一个实施例中,所述第一处理模块402,用于在所述读取结果为成功的情况下,根据所述分布式缓存中的目标数据响应所述数据处理请求,并将所述目标数据同步至所述第一本地缓存。
97.在本发明一个实施例中,所述第一处理模块402,用于设置第一定时任务;根据所述第一定时任务,利用所述第一进程将所述分布式缓存中的数据同步至所述第一本地缓存,并对所述第一本地缓存中的数据设置过期时间。
98.在本发明一个实施例中,所述第二处理模块403,用于确定所述第二本地缓存中是否存在所述目标数据;如果是,确定所述目标数据是否过期;如果是,利用获取到分布式锁的线程,从数据库中获取所述目标数据,将获取到的所述目标数据存储至所述第二本地缓存中,并根据获取到的所述目标数据响应所述数据处理请求。
99.在本发明一个实施例中,所述第二处理模块403,用于设置第二定时任务;根据所述第二定时任务,利用所述第二进程从所述数据库中读取变更数据;将所述变更数据存储至所述第二本地缓存,并同步至所述分布式缓存中。
100.在本发明一个实施例中,所述第二处理模块402,用于确定所述第一进程和所述第二进程分别运行在第一服务器和第二服务器上,所述第一本地缓存和所述第二本地缓存分别为所述第一服务器和所述第二服务器上的本地缓存。
101.在本发明一个实施例中,数据处理装置400还可以包括配置模块(图中未示出),用于配置信息,生成变更数据,并将变更数据保存至数据库中。
102.根据本发明实施例提供的一种数据处理装置,优先从第一本地缓存或分布式缓存中读取数据响应数据处理请求,提高了数据处理请求的响应速度和效率,减少了并发连接数据库的情况;当从分布式缓存中读取数据失败时,利用异步执行的第二进程从第二本地缓存中读取数据,提高了数据处理效率,进一步减少了从数据库中读取数据的频率,从而减少了数据处理请求穿透至数据库进行查询的情况,保证了数据库的性能,进而保证了数据库的稳定性。
103.进一步地,利用第二进程中获取到分布式锁的线程从数据库中读取数据并同步至分布式缓存和第二本地缓存,可以将连接数据库的进程与读取分布式缓存的进程分开;由此,在高并发的情况下,降低了数据库的连接数,避免了由于数据库连接数过大导致数据读取失败的情况,从而保证了从数据库读取数据的稳定性和成功率。
104.图5示出了可以应用本发明实施例的一种数据处理方法或一种数据处理装置的示例性系统架构500。
105.如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
106.用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发
送消息等。
107.终端设备501、502、503可以是具有显示屏并且支持信息浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
108.服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503提出的数据处理请求提供支持的后台管理服务器。后台管理服务器可以对接收到的数据处理请求等数据进行分析等处理,并将处理结果反馈给终端设备。
109.需要说明的是,本发明实施例所提供的数据处理方法一般由服务器505执行,相应地,数据处理装置一般设置于服务器505中。
110.应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
111.下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
112.如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有系统600操作所需的各种程序和数据。cpu 601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
113.以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
114.特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(cpu)601执行时,执行本发明的系统中限定的上述功能。
115.需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,
其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
116.附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
117.描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块,第一处理模块,第二处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“获取数据处理请求的模块”。
118.作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取数据处理请求;所述数据处理请求指示了待处理数据标识;在第一本地缓存为空或所述第一本地缓存中的数据过期的情况下,利用第一进程从分布式缓存中读取与所述待处理数据标识对应的目标数据;在读取结果为失败的情况下,利用第二进程根据第二本地缓存中的数据响应所述数据处理请求,所述分布式缓存中的数据与所述第二本地缓存中的数据是所述第二进程定时从数据库同步的;所述第一进程和所述第二进程异步执行。
119.根据本发明实施例的技术方案,优先从第一本地缓存或分布式缓存中读取数据响应数据处理请求,提高了数据处理请求的响应速度和效率,减少了并发连接数据库的情况;当从分布式缓存中读取数据失败时,利用异步执行的第二进程从第二本地缓存中读取数据,提高了数据处理效率,进一步减少了从数据库中读取数据的频率,从而减少了数据处理请求穿透至数据库进行查询的情况,保证了数据库的性能,进而保证了数据库的稳定性。
120.进一步地,利用第二进程中获取到分布式锁的线程从数据库中读取数据并同步至分布式缓存和第二本地缓存,可以将连接数据库的进程与读取分布式缓存的进程分开;由此,在高并发的情况下,降低了数据库的连接数,避免了由于数据库连接数过大导致数据读取失败的情况,从而保证了从数据库读取数据的稳定性和成功率。
121.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何
在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1