1.本技术涉及数据处理领域,特别是一种数据处理方法、装置、设备及存储介质。
背景技术:2.随着信息化的不断深入发展,数据生成速度正在提高,需要处理的数据量急速膨胀,大数据时代即将到来。所谓大数据指所涉及的数据量规模巨大,以至于无法通过主流软件在合理的时间内进行处理的数据。在面对海量数据时,传统关系数据库虽然具有支持完整性约束、支持事务等优点,但是在大规模海量数据面前显得力不从心。
3.缓存是指可以进行高速数据交换的存储器,它先于内存与cpu(central processing unit,中央处理器)交换数据,因此速率很快。缓存只是内存中少部分数据的复制品,所以cpu到缓存中寻找数据时,也会出现找不到的情况,这时cpu还是会到内存中去找数据,这样系统的速率就慢下来了,不过cpu会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。
4.现如今系统为了提高访问效率,减小数据库访问压力,提升系统性能,缓存的使用愈发普遍,伴随着缓存的使用,一系列问题也接踵而至,其中缓存与数据库数据一致性问题一直是业内比较难解决的痛点。现有技术中缓存当中容易出现脏数据;或通过休眠一定时间再删除缓存,休眠可能会影响系统的吞吐量,造成系统资源浪费,即使有人为了吞吐量考虑,提供了异步延时删除策略,依旧没有从根源上解决问题,如果并发量到达一定级别或者休眠后删除缓存异常依然会出现缓存脏数据;或依赖数据库的binlog日志,订阅数据库binlog日志,将有更新的数据及时更新到缓存中,该方案的缺点是更新缓存有延时,在业务要求强一致性时无法保证数据的准确性,而且代码开发成本高,增加了维护成本。
技术实现要素: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.参照图1,示出了本技术一实施例提供的一种数据处理方法的步骤流程图;
60.一种数据处理方法,所述方法包括:
61.s110、依据当前数据的读取情况和写入情况确定当前业务场景,其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景;
62.s120、当所述当前业务场景与目标使用场景相符合时,依据所述当前业务场景确定所述目标业务场景的状态信息、缓存信息和数据库信息;
63.s130、依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁。
64.在本技术的实施例中,通过获取当前数据,并依据所述当前数据的读信息情况和写信息情况确定当前业务场景;其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景;当所述当前业务场景与目标使用场景相符合时,依据所述当前业务场景确定所述目标业务场景的状态信息、缓存信息和数据库信息;依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务
需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁。通过当前数据确定当前业务场景,确定当前业务场景,后依据当前业务场景确定目标业务场景的状态信息;依据目标业务场景的状态信息(即在读多写少时)、缓存信息和数据库信息,依据业务需求的不同(即是否一致,分为两种情况:短暂不一致和强一致)对缓存信息和数据库信息进行数据处理,其中数据处理包括添加缓存失效时间或添加读写锁;依据业务需求的不同对应进行相应的数据处理,使得缓存数据与数据库数据之间达成一致性,同时能够降低对系统性能的影响,降低实施成本,以及避免对原有代码逻辑的入侵。
65.下面,将对本示例性实施例中一种数据处理方法作进一步地说明。
66.如所述步骤s110所述,依据当前数据的读取情况和写入情况确定当前业务场景,其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景。
67.需要说明的是,依据当前数据的读取情况和写入情况可以确定当前业务场景包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景。
68.在本发明一实施例中,可以结合下列描述进一步说明步骤s110所述“依据当前数据的读取情况和写入情况确定当前业务场景,其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景”的具体过程。
69.参照图2,示出了本技术一实施例提供的一种数据处理方法的步骤流程图;如下列步骤所述,
70.s210,确定所述当前数据包含的数据类型和所述当前数据的变化频率;其中,所述数据类型包括热点数据和非热点数据;
71.s220,依据所述当前数据包含的数据类型确定所述读信息情况;
72.s230,依据所述当前数据的变化频率确定所述写信息情况;
73.s240,依据所述读信息情况和所述写信息情况确定所述当前业务场景。
74.需要说明的是,通过确定所述当前数据包含的数据类型和所述当前数据的变化频率;其中,所述数据类型包括热点数据和非热点数据;依据所述当前数据包含的数据类型确定所述读信息情况;依据所述当前数据的变化频率确定所述写信息情况;依据所述读信息情况和所述写信息情况确定所述当前业务场景;通过数据类型确定读信息情况,变化频率确定写信息情况,再根据当前读信息情况和写信息情况确定所述当前业务场景。
75.在一具体实现中,数据类型分为热点数据和非热点数据,热点数据即读取率较大的数据,非热点数据即读取率较小的数据;变化频率即数据的写入率,其中,数据的写入率大于预设值时,则认定变化频率较高的数据;数据的写入率小于预设值时,则认定变化频率较低的数据。
76.在本发明一实施例中,可以结合下列描述进一步说明步骤s240所述“依据所述读信息情况和所述写信息情况确定所述当前业务场景”的具体过程。
77.参照图3,示出了本技术一实施例提供的一种数据处理方法的步骤流程图;如下列步骤所述,
78.s310,当所述读信息情况大于预设读信息情况,且所述写信息情况大于预设写信息情况时,则确定所述当前业务场景为所述读多写多业务场景;
79.或;
80.s320,当所述读信息情况小于预设读信息情况,且所述写信息情况大于预设写信息情况时,则确定所述当前业务场景为所述读少写多业务场景;
81.或;
82.s330,当所述读信息情况大于预设读信息情况,且所述写信息情况小于预设写信息情况时,则确定所述当前业务场景为所述读多写少业务场景;
83.或;
84.s340,当所述读信息情况小于预设读信息情况,且所述写信息情况小于预设写信息情况时,则确定所述当前业务场景为所述读少写少业务场景。
85.需要说明的是,通过将读信息情况与预设读信息情况进行对比,将写信息情况与预设写信息情况进行对比,能够得知当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景。
86.在一具体实现中,当当前业务场景为读少写少业务场景、读少写多业务场景和读多写多业务场景时,这几种业务场景不建议使用缓存;因缓存的使用场景需满足为热点数据以及变化频率比较低的情况。
87.如所述步骤s120所述,当所述当前业务场景与目标使用场景相符合时,依据所述当前业务场景确定所述目标业务场景的状态信息、缓存信息和数据库信息。
88.需要说明的是,所述当前业务场景与目标使用场景相符合时确定目标业务场景的状态信息、缓存信息和数据库信息;通过目标使用场景在上述当前业务场景中确定目标业务场景,目标使用场景(即缓存的使用场景)在于当前业务场景内的数据是否为读取率较大的数据以及变化频率较低的数据的情况,通过目标使用场景能够确定所述读多写少业务场景为目标业务场景,则读多写少业务场景的状态信息为读多写少。
89.在一具体实现中,当当前业务场景内的数据即满足为热点数据,又满足业务数据的变换频率低于预设频率时,则能够确定当前业务场景内的读多写少业务场景为目标业务场景,即当前业务场景内的数据需要即满足为热点数据,且变化频率要比预设值低,从而才能确定为目标业务场景,而在读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景中仅有读多写少业务场景同时满足热点数据,还满足变化频率低;因此确定读多写少业务场景为目标业务场景,依据读多写少业务场景确定其状态信息为读多写少,以及读多写少业务场景的缓存信息和数据库信息。
90.如所述步骤s130所述,依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁。
91.需要说明的是,依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理,其中所述数据处理包括添加缓存失效时间和/或添加读写锁;其中,所述业务需求包括第一业务需求和第二业务需求,通过不同的业务需求所执行的数据处理也不同,具体地,第一业务需求对应添加读写锁,第二业务需求对应添加缓存失效时间。
92.作为一种示例,当所述业务需求为第二业务需求即短暂不一致时,所述短暂不一致具体指的是在缓存信息获取页面展示信息,通过对所述缓存信息设置缓存失效时间,在缓存失效时间后,使得缓存数据与数据库数据达成一致性;
93.作为一种示例,当所述业务需求为第一业务需求即强一致时,所述强一致具体指的是在缓存信息中获取配置信息,对配置信息进行修改,使得配置信息及时生效;通过对引入分布式的读写锁,即依据所述状态信息、所述缓存信息、所述数据库信息添加读写锁,其中添加读写锁包括查询数据和更新数据;
94.在一具体实现中,当添加读写锁为查询数据时,获取读锁,在所述缓存信息内获取是否存在数据信息;当所述缓存信息内未获取到数据信息,则查询所述数据库信息和更新所述缓存信息并返回数据信息;当所述缓存信息内获取到数据信息,则释放读锁并返回数据信息;
95.在一具体实现中,当添加读写锁为更新数据时,获取写锁,更新所述数据库信息和缓存信息并释放写锁。
96.在本发明一实施例中,可以结合下列描述进一步说明步骤s130所述“依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁”的具体过程。
97.参照图4,示出了本技术一实施例提供的一种数据处理方法的步骤流程图;如下列步骤所述,
98.s410、获取所述目标业务场景的状态信息,依据所述状态信息确定所述业务需求;其中,所述业务需求包括第一业务需求和第二业务需求;
99.s420、当所述业务需求为所述第一业务需求时,对所述状态信息、所述缓存信息、所述数据库信息添加读写锁;其中,所述添加读写锁包括查询数据和更新数据;
100.或;
101.s430、当所述业务需求为所述第二业务需求时,对所述状态信息、所述缓存信息、所述数据库信息添加缓存失效时间;其中,所述添加缓存失效时间为在所述缓存信息上添加一缓存失效时间。
102.需要说明的是,获取目标业务场景的状态信息,依据目标业务场景的状态信息确定业务需求,其中,所述业务需求包括第一业务需求即强一致和第二业务需求即短暂不一致;即在不同的业务需求下所要依据所述状态信息、所述缓存信息、所述数据库信息进行的数据处理也不同,即不同的业务需求所执行的数据处理也不同;具体地,第一业务需求即强一致对应添加读写锁,第二业务需求即短暂不一致对应添加缓存失效时间。
103.作为一种示例,当所述业务需求为短暂不一致时,所述短暂不一致具体指的是在缓存信息获取页面展示信息,通过对所述缓存信息设置缓存失效时间,在缓存失效时间后,使得缓存数据与数据库数据达成一致性;
104.在一具体实现中,当状态信息为读多写少时,允许业务需求容许短暂的不一致;如从缓存数据中获取展示信息用作与页面的展示,仅仅是作为展示,并不会影响真实业务;针对此种情况,只需给缓存设置一个缓存失效时间,缓存失效时间达到后,缓存数据与数据库数据达成一致性。
105.作为一种示例,当所述业务需求为强一致时,所述强一致具体指的是在缓存信息中获取配置信息,对配置信息进行修改,使得配置信息及时生效;通过对引入分布式的读写锁,即依据所述状态信息、所述缓存信息、所述数据库信息和业务需求添加读写锁,其中,添加读写锁包括查询数据和更新数据;
106.在一具体实现中,当状态信息为读多写少时,业务需求为强一致时,从缓存数据获取一些配置信息,一些配置信息更改后需要及时生效,针对此种情况,通过可以引入分布式的读写锁,依赖读写锁的特性,保证强一致性;因为读写锁只有读写、写写互斥,读读的时候不互斥,利用这一特性,即使使用了锁,在读数据的过程中,系统性能损失较小;具体逻辑为:在读数据即查询数据的时候获取读锁,在更新数据的时候获取写锁,能够使得代码改造成本低。
107.在本发明一实施例中,可以结合下列描述进一步说明步骤s420所述“当所述业务需求为所述第一业务需求时,对所述状态信息、所述缓存信息、所述数据库信息添加读写锁;其中,所述添加读写锁包括查询数据和更新数据”的具体过程。
108.参照图5,示出了本技术一实施例提供的一种数据处理方法的步骤流程图;如下列步骤所述,
109.s510,当所述添加读写锁为所述查询数据时,获取读锁,在所述缓存信息内获取是否存在数据信息;
110.s520,当所述缓存信息内未获取到数据信息,则查询所述数据库信息和更新所述缓存信息并返回数据信息;
111.或;
112.s530,当所述缓存信息内获取到数据信息,则释放所述读锁并返回数据信息。
113.需要说明的是,当添加读写锁为查询数据时,获取读锁,在所述缓存信息内获取是否存在数据信息;当所述缓存信息内未获取到数据信息,则查询所述数据库信息和更新所述缓存信息并返回数据信息;或,当所述缓存信息内获取到数据信息,则释放读锁并返回数据信息。
114.在本发明一实施例中,可以结合下列描述进一步说明步骤s430所述“当所述业务需求为所述第二业务需求时,对所述状态信息、所述缓存信息、所述数据库信息添加缓存失效时间;其中,所述添加缓存失效时间为在所述缓存信息上添加一缓存失效时间”的具体过程。
115.参照图6,示出了本技术一实施例提供的一种数据处理方法的步骤流程图;如下列步骤所述,
116.s610,当所述添加读写锁为所述更新数据时,获取写锁;
117.s620,依次更新所述数据库信息和所述缓存信息后释放所述写锁。
118.需要说明的是,当添加读写锁为更新数据时,获取写锁,依次更新所述数据库信息和所述缓存信息后释放所述写锁。
119.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
120.参照图7,示出了本技术一实施例提供的一种数据处理装置的结构框图;
121.本发明一实施例还公开了一种数据处理装置,所述装置具体包括:
122.第一确定模块710,用于获取当前数据,并依据所述当前数据的读信息情况和写信息情况确定当前业务场景;其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景;
123.第二确定模块720,用于当所述当前业务场景与目标使用场景相符合时,依据所述
当前业务场景确定所述目标业务场景的状态信息、缓存信息和数据库信息;
124.处理模块730,用于依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁。
125.在本发明一实施例中,所述第一确定模块710,包括:
126.第一确定子模块,用于确定所述当前数据包含的数据类型和所述当前数据的变化频率;其中,所述数据类型包括热点数据和非热点数据;
127.第二确定子模块,用于依据所述当前数据包含的数据类型确定所述读信息情况;
128.第三确定子模块,用于依据所述当前数据的变化频率确定所述写信息情况;
129.第四确定子模块,用于依据所述读信息情况和所述写信息情况确定所述当前业务场景。
130.在本发明一实施例中,所述第四确定子模块,包括:
131.第一确定单元,用于当所述读信息情况大于预设读信息情况,且所述写信息情况大于预设写信息情况时,则确定所述当前业务场景为所述读多写多业务场景;
132.或;
133.第二确定单元,用于当所述读信息情况小于预设读信息情况,且所述写信息情况大于预设写信息情况时,则确定所述当前业务场景为所述读少写多业务场景;
134.或;
135.第三确定单元,用于当所述读信息情况大于预设读信息情况,且所述写信息情况小于预设写信息情况时,则确定所述当前业务场景为所述读多写少业务场景;
136.或;
137.第四确定单元,用于当所述读信息情况小于预设读信息情况,且所述写信息情况小于预设写信息情况时,则确定所述当前业务场景为所述读少写少业务场景。
138.在本发明一实施例中,所述处理模块730,包括:
139.第五确定子模块,用于获取所述目标业务场景的状态信息,依据所述状态信息确定所述业务需求;其中,所述业务需求包括第一业务需求和第二业务需求;
140.第一添加子模块,用于当所述业务需求为所述第一业务需求时,对所述状态信息、所述缓存信息、所述数据库信息添加读写锁;其中,所述添加读写锁包括查询数据和更新数据;
141.或;
142.第二添加子模块,用于当所述业务需求为所述第二业务需求时,对所述状态信息、所述缓存信息、所述数据库信息添加缓存失效时间;其中,所述添加缓存失效时间为在所述缓存信息上添加一缓存失效时间。
143.在本发明一实施例中,所述第一添加子模块,包括:
144.第一获取单元,用于当所述添加读写锁为所述查询数据时,获取读锁,在所述缓存信息内获取是否存在数据信息;
145.第一返回单元,用于当所述缓存信息内未获取到数据信息,则查询所述数据库信息和更新所述缓存信息并返回数据信息;
146.或;
147.第二返回单元,用于当所述缓存信息内获取到数据信息,则释放所述读锁并返回数据信息。
148.在本发明一实施例中,所述第二添加子模块,包括:
149.第二获取单元,用于当所述添加读写锁为所述更新数据时,获取写锁;
150.释放单元,用于依次更新所述数据库信息和所述缓存信息后释放所述写锁。
151.参照图8,示出了本发明的一种数据处理方法的计算机设备,具体可以包括如下:
152.上述计算机设备12以通用计算设备的形式表现,计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
153.总线18表示几类总线18结构中的一种或多种,包括存储器总线18或者存储器控制器,外围总线18,图形加速端口,处理器或者使用多种总线18结构中的任意总线18结构的局域总线18。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线18,微通道体系结构(mac)总线18,增强型isa总线18、音视频电子标准协会(vesa)局域总线18以及外围组件互连(pci)总线18。
154.计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
155.系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其他移动/不可移动的、易失性/非易失性计算机体统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其他光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质界面与总线18相连。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块42,这些程序模块42被配置以执行本发明各实施例的功能。
156.具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其他程序模块42以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
157.计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24、摄像头等)通信,还可与一个或者多个使得操作人员能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其他计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)界面22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan)),广域网(wan)和/或公共网络(例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其他模块通信。应当明白,尽管图8中未示出,可以结合计算机设备12使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、处理单元16、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统34等。
158.处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及
数据处理,例如实现本发明实施例所提供的一种数据处理方法。
159.也即,上述处理单元16执行上述程序时实现:获取当前数据,并依据所述当前数据的读信息情况和写信息情况确定当前业务场景;其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景;当所述当前业务场景与目标使用场景相符合时,依据所述当前业务场景确定所述目标业务场景的状态信息、缓存信息和数据库信息;依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁。
160.在本发明实施例中,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术所有实施例提供的一种数据处理方法:
161.也即,给程序被处理器执行时实现:获取当前数据,并依据所述当前数据的读信息情况和写信息情况确定当前业务场景;其中,所述当前业务场景至少包括读多写少业务场景、读少写少业务场景、读少写多业务场景和读多写多业务场景;当所述当前业务场景与目标使用场景相符合时,依据所述当前业务场景确定所述目标业务场景的状态信息、缓存信息和数据库信息;依据所述目标业务场景的所述状态信息、所述缓存信息、所述数据库信息和业务需求进行数据处理;其中,所述数据处理包括添加缓存失效时间或添加读写锁。
162.可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
163.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
164.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言——诸如java、smalltalk、c++,还包括常规的过程式程序设计语言——诸如“c”语言或类似的程序设计语言。程序代码可以完全地在操作人员计算机上执行、部分地在操作人员计算机上执行、作为一个独立的软件包执行、部分在操作人员计算机上部分在远程计算机上执行或者完全在远程计算机或者服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到操作人员计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
165.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
166.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
167.以上对本技术所提供的一种数据处理方法、装置、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。