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

基于双缓存的业务数据处理系统、方法、装置及存储介质与流程

2022-07-10 05:16:20 来源:中国专利 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.图1为本发明提供的基于双缓存的业务数据处理系统模块图;
44.图2为本发明提供的基于双缓存的业务数据处理系统中不同微服务模块之间的数据获取流程图;
45.图3为本发明提供的基于双缓存的业务数据处理方法流程图;
46.图4为图3中的步骤s3的流程图之一;
47.图5为图3中的步骤s3的流程图之二。
具体实施方式
48.下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
49.实施例一
50.本发明提供一种基于双缓存的业务数据处理系统,在海量的业务数据中在保证数据准确性的情况下能够瞬间响应,可快速返回所需的业务数据,满足海量业务数据的需求。
51.本发明提供一种优选的实施例,一种基于双缓存的业务数据处理系统,如图1所示,包括三个部分:微服务模块、缓存模块和数据库。
52.其中,微服务模块是整个系统的数据处理中心,所有的业务数据都由微服务模块进行处理并反馈给用户。
53.本发明中的缓存模块、数据库均用于存储数据。其中,缓存模块中存储的业务数据是以键值对的形式存放在内存中,并且其所存储的业务数据为热点数据,具有临时性。而数据库中存储的业务数据存放于磁盘中,其所存储的业务数据为系统的全部业务数据,具有持久性。本发明通过将热点数据临时存储于缓存模块中,以便热点业务数据的快速响应,将全部的业务数据存储于数据库中,以便保证数据的完整性和准确性。本发明通过在微服务模块与数据库之间增加缓存模块层,这样,每次微服务模块接收到用户的查询指令时,微服务模块会优先从缓存模块中获取;当缓存模块中不存在该数据是,从数据库中获取,并将查询到的数据存放在缓存模块中,以便后续查询同样的数据时能够快速从缓存模块中获取。
54.更为优选地,本发明中缓存模块包括内存缓存模块和数据库缓存模块,其中,内存缓存模块是指基于内存的本地缓存,通过存放在jvm(java virtual machine,java虚拟机)本地缓存实现,不需要额外部署,比如ehcache缓存(是广泛使用的开源java分布式缓存)、memcache缓存(是分布式的高速缓存系统);数据库缓存模块是指基于内存的数据库,需要额外部署于服务器上,比如redis缓存,其是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。
55.本发明通过采用双缓存机制来存储热点的业务数据,为微服务模块提供快速的数据支撑。本发明采用双缓存代替了直接进行数据库的查询,其中,ehcache缓存是内存缓存,其读取效率十分高效,但只采用内存缓存模块可能会导致内存不够用;而redis缓存是键值对数据库,如果仅用redis做缓存,则存在频繁的网络io读写的问题,因此采用双缓存可以有效弥补双方缺陷,解决缓存模块和数据库数据一致性的问题并快速返回业务数据,也即,在海量的业务数据中依然能在保证数据准确性的情况下瞬间响应,快速返回所需的业务数据。
56.优选地,为了保证查询的业务数据的准确性以及及时性,本发明对于不同数据量的业务数据采用不同的查询缓存处理方式也不同,具体可分为以下两种情况:
57.对于大数据量的业务数据,在查询时优先使用内存缓存模块。也即,在数据查询时,优先对内存缓存模块进行查询,以判断内存缓存模块中是否存在对应的业务数据,若存在,再判断内存缓存模块和数据库缓存模块中的时间戳来判断内存缓存模块中的业务数据是否可用,若是,则直接从内存缓存模块中取出业务数据;反之,若内存缓存模块中不存在对应的业务数据,或若根据内存缓存模块与数据库缓存模块中的时间戳得出内存缓存模块
中的业务数据不可用时,从数据库中查询对应的业务数据或从数据库缓存模块中得出对应的业务数据,然后将得到的业务数据重新存储于内存缓存模块和数据库缓存模块,并分别在内存缓存模块和数据库缓存模块中设置相同的新的时间戳。
58.对于小数据量的业务数据,在查询时只使用数据库缓存模块。也即,在数据查询时,直接从数据库缓存模块中查询是否对应的业务数据,若存在,直接从数据库缓存模块中取出对应的业务数据;若不存在,则从数据库中获取对应的业务数据,同时将对应的业务数据存储数据库缓存中。
59.另外,对于业务数据的数据量大小可根据实际的使用需求设置,比如通过在系统中设置预设值,当查询的业务数据的数据量超过一定的预设值,则认为业务数据为大数据量的业务数据。
60.由于内存缓存模块是基于jvm内存的本地缓存模块,其数据的获取速度非常快,但是,jvm内存的大小是在java程序启动时就已经设定好的,若内存缓存模块占用了大量的jvm内存时,会导致整个java程序的卡顿。也即,当内存缓存模块中的业务数据越来越多时,会导致jvm内存的性能下降。
61.很明显,对于大数据量的业务数据来说,内存缓存模块的性能要优于数据库缓存模块,优先使用内存缓存模块,同时为了避免出现内存溢出的问题,在存放业务数据时通过对业务数据设置合理的失效时间(也即,内存缓存模块的业务数据在一定时间后内存会自动释放),以便做到空间和时间上的最优;而对于小数据量的业务数据来说,由于其性能上的损失不大,只使用数据库缓存模块即可,不需要使用内存缓存模块。另外,对于大数据量的业务数据,本发明通过设置时间戳,以判断业务数据的有效性。由于内存缓存模块是基于jvm的本地缓存,当大数据量的业务数据在存放到内存缓存模块时有可能失败,从而导致内存缓存模块中存储的是旧数据而造成数据不一致的问题,因此,本发明通过设置时间戳可保证数据的准确性。具体地,本发明中所指出的数据不一致问题主要体现在多服务器部署的情况下,不同服务器使用的内存缓存模块均是基于本地的jvm内存的本地缓存实现的,也即,各个服务器之间的内存缓存模块互不干扰;而数据库缓存模块的缓存数据是共享的,这样就会有可能出现数据库缓存模块和各个服务器的内存缓存模块的数据不一致问题。因此,本发明通过使用时间戳能高效的解决数据不一致的问题。具体地,假设现有服务器a和服务器b,还有数据库缓存模块c,在负载均衡的情况下,用户1使用了服务器a并存入了业务数据到a的内存缓存模块和数据库缓存模块c,同时存有时间戳;然后用户2使用了服务器b也使用了相同的业务并更新了业务数据,这时新的业务数据会存放在服务器b的内存缓存模块和数据库缓存模块c,同时存有新的时间戳;当用户1再次使用服务器a时,系统会用服务器a中内存缓存模块的时间戳和数据库缓存模块c中的时间戳进行比较,发现服务器a中内存缓存模块的时间戳较小,也即服务器a中内存缓存模块中的该业务数据无效,则废弃内存缓存模块中的该业务数据,从而使用数据库缓存模块中的缓存数据,并在服务器a中的内存缓存模块重新设置缓存数据。
62.优选地,为了保证数据查询的时效性,本发明中的微服务模块还可设有多个。对于每个为微服务模块而言,接收到数据查询指令时,可采用并行处理方式来实现数据查询。也即,微服务模块可在同一时间使用多个子线程实现数据的查询。通过使用线程池同时开启获取自身查询数据的功能和获取其他微服务模块查询的数据的功能,然后使用并发工具包
来监控每个子线程的完成情况,并最后通知主线程所有的数据获取完毕后,对得到的所有数据进行处理并组装后反馈给用户。其中,在采用并行处理时,每个线程锁获取的数据之间是不相关的,线程池中的一个子线程的操作不会影响其他子线程的操作。优选地,在获取到数据后,一般使用parallelstream并行流对获取的数据进行组装,以取代逐个遍历的方式。
63.在使用并行处理的过程中,所有的集合类(例如map、list)全部改用concurrenthashmap和concurrentlinkedqueue等并发安全的集合类,因为普通的集合类在多线程并发中容易出现数组越界、死循环等问题,采用并发安全的集合类可以避免这些情况的发生。本发明通过采用多线程并行的方案代替现有的串行处理数据,为接口的响应速度带来了显著的提升。同时,通过数据的特殊化处理以及采用并发工具包消除多线程带来的并发安全问题,保障数据的准确性,使系统安全稳定运行。
64.优选地,微服务模块在获取到数据查询指令后可将其拆分成多个子查询指令,并根据每个子查询指令调用对应线程从缓存模块或其他的微服务模块获取对应的子业务数据,然后将查询到的所有的子业务数据进行处理并组装后得到最终所需要的业务数据。具体地,如图2所示,微服务模块一,在进行数据查询时,既可以从缓存模块中获取数据,又可以从其他的微服务模块二、微服务模块三获取数据。
65.优选地,本发明在使用双缓存时,很容易出现数据不一致、脏缓存模块等问题,这会导致系统失去数据的准确性。因此,当系统中每次对业务数据更改时,将业务数据存储数据库中的同时,还需要根据缓存索引将两个缓存模块中的对应业务数据删除,以避免新旧数据不一致的情况。比如当缓存模块中存储有业务数据一,而系统中需要对业务数据一进行更改后将其存储到数据库中,若不将缓存模块中的业务数据一删除,则会出现缓存模块中的业务数据一与数据库中的业务数据一不一致的问题。
66.另外,从缓存模块中获取业务数据后还需要对缓存模块中的业务数据进行修改时,首先对缓存模块中的业务数据进行深拷贝后再修改,以防止出现脏缓存模块的问题。比如对于内存缓存模块来说,ehcache缓存的策略为浅拷贝,再对ehcache缓存的数据进行修改时会影响缓存中的值,采用深拷贝即可防止脏缓存的产生。
67.实施例二
68.基于实施例一,本发明提供一种基于双缓存的业务数据处理方法,如图3所示,包括以下步骤:
69.步骤s1、获取数据查询指令。通过微服务模块来获取用户发送的数据查询指令,从而使得微服务模块根据数据查询指令来实现数据的查询。
70.步骤s2、根据数据查询指令对内存缓存模块和/或数据库缓存模块进行查询,以判断缓存模块中是否存在所需要的业务数据,若是,则执行步骤s3;若否,则执行步骤s4。
71.当需要查询数据时,首先从缓存模块中查询是否存在所需要的业务数据,若是,则直接从缓存模块中获取业务数据,实现数据的快速响应;若否,则从数据库中查询业务数据。由于缓存模块中存储的是部分的业务数据,而数据库中存储的全部的业务数据,因此,当缓存模块中不存在对应业务数据时,可从数据库中查询。
72.步骤s3、从内存缓存模块或数据库缓存模块中获取所需要的业务数据,执行步骤s6。
73.当缓存模块中存在业务数据时,直接从缓存模块中获取对应的业务数据即可。
74.步骤s4、从数据库中查询到所需要的业务数据,执行步骤s6,同时执行步骤s5。
75.步骤s5、将查询到的业务数据按照业务数据的不同存储于对应的缓存模块。当缓存模块中不存在业务数据时,从数据库中查询业务数据,同时对查询到的业务数据后还将其同步存储于对应缓存模块中,以便后续再次查询到业务数据时直接从缓存模块中获取,实现快速响应。
76.步骤s6、将查询到的所需要的业务数据反馈给用户。
77.优选地,由于不同的业务数据其数据量不同,所使用的缓存模块不同,因此,当所需要的业务数据为第一业务数据时,其中,本技术所指的第一业务数据是指前述的大数据量的业务数据,比如第一业务数据的数据量超过预设值时,可认为该数据为大数据量的业务数据;如图4所示,步骤s3还包括:
78.步骤s311、判断内存缓存模块是否存在第一业务数据,若否,则执行步骤s317;若是,则执行步骤s312。对于大数据量的业务数据,其优先使用内存缓存模块,因此,首先判断内存缓存模块中是否存在第一业务数据。
79.步骤s312、判断内存缓存模块中存在的第一业务数据是否可用,若是,则执行步骤s313;若否,则执行步骤s314。
80.具体地,可通过获取内存缓存模块和数据库缓存模块中所存储的第一业务数据的时间戳来判断内存缓存模块中的第一业务数据是否可用。比如本发明提供的一种实例,对于多服务器来说,当本地服务器的内存缓存模块中的时间戳小于数据库缓存模块中的时间戳,则认为内存缓存模块中的数据为失效的。另外,对于判断内存缓存模块中的第一业务数据是否可用,并不仅限于本技术中所指出的通过判断时间戳的大小,具体根据实际的需求进行设置判断。
81.步骤s313、从内存缓存模块中获取第一业务数据,然后执行步骤s318。
82.步骤s314、当数据库缓存模块中存在第一业务数据并且存在的第一业务数据可用时,执行步骤s316。
83.步骤s315、当数据库缓存模块不存在第一业务数据或存在的第一业务数据不可用时,执行步骤s317。
84.步骤s316、从数据库缓存模块中获取第一业务数据,并将获取的第一业务数据存储于内存缓存模块并设置新的时间戳,执行步骤s318。
85.步骤s317、从数据库中获取第一业务数据,以及将第一业务数据重新存储内存缓存模块和数据库缓存模块并分别设置新的时间戳,执行步骤s318。
86.步骤s318、将第一业务数据反馈给用户。
87.优选地,当所需要的业务数据为第二业务数据时,其中,本技术的第二业务数据是指前述的小数据量的业务数据,比如需要查询的业务数据的数据量不超过预设值;如图5所示,步骤s3还包括:
88.步骤s321、判断数据库缓存模块中是否存在第二业务数据,若是,则步骤s322;若否,则执行步骤s323。对于小数据量的业务数据来说,其只使用数据库缓存模块,因此,在缓存模块中查询数据时直接从数据库缓存模块中查找即可。
89.步骤s322、从数据库缓存模块中获取第二业务数据,然后执行步骤s325。
90.步骤s323、从数据库中获取第二业务数据,然后执行步骤s324和步骤s325。
91.步骤s324、将第二业务数据存储于数据库缓存模块中。
92.步骤s325、将第二业务数据反馈给用户。
93.优选地,步骤s1还包括:对获取到的数据查询指令进行拆分生成一个或多个子数据查询指令,并根据每个子数据查询指令执行步骤s2、步骤s3、步骤s4以及步骤s5以得出对应的子业务数据或从其他微服务模块获取对应的子业务数据。
94.对应地,步骤s6还包括还用于将查询到的所有的子业务数据进行处理并组装后得到所需要的业务数据并反馈给用户。也即,对于每个子线程查询到的子业务数据进行处理并组装后得到最终的业务数据。
95.优选地,本发明还包括:数据更新步骤:当存在需要修改的业务数据时对该业务数据进行修改,并将修改后的业务数据存储数据库中,同时删除缓存模块中对应的该业务数据。也即,在对业务数据进行修改时,将修改后的业务数据存储到数据库中的同时,还需要将缓存模块中存在的该业务数据删除,以避免新旧数据的不一致性。
96.实施例三
97.基于实施例二,本发明还提供基于双缓存的业务数据处理装置,其包括存储器和处理器,所述存储器上存储有在处理器上运行的业务数据处理程序,所述业务数据处理程序为计算机程序,所述处理器执行所述业务数据处理程序时实现以下步骤:
98.指令获取步骤:获取数据查询指令;
99.缓存查询步骤:根据所述数据查询指令对内存缓存模块和/或数据库缓存模块进行查询,以判断所述内存缓存模块和/或数据库缓存模块是否存在所需要的业务数据,若是,则执行缓存模块查询步骤;若否,则执行数据库查询步骤;
100.缓存模块查询步骤:从所述内存缓存模块或数据库缓存模块中获取所需要的业务数据,执行反馈步骤;
101.数据库查询步骤:从所述数据库中查询到所需要的业务数据,执行反馈步骤,同时将查询到的业务数据存储于对应缓存模块中;
102.反馈步骤:将查询到的所需要的业务数据反馈给用户。
103.进一步地,当所需要的业务数据为第一业务数据时,所述缓存查询步骤具体包括:
104.内存缓存查询步骤:判断所述内存缓存模块是否存在所述第一业务数据,若否,则执行所述数据库查询步骤;若是,则执行时间戳判断步骤;
105.时间戳判断步骤:判断所述内存缓存模块中的所述第一业务数据是否可用,若是,则从所述内存缓存模块中获取所述第一业务数据;若否,则执行数据库缓存查询步骤;
106.数据库缓存查询步骤:当所述数据库缓存模块中存在第一业务数据并且所述数据库缓存模块中的第一业务数据可用时,从数据库缓存模块中获取所述第一业务数据并将所述第一业务数据存储所述内存缓存模块并设置新的时间戳;当所述数据库缓存模块中不存在所述第一业务数据或者所述数据库缓存模块中的所述第一业务数据不可用时,执行所述数据库查询步骤;
107.其中,所述数据库查询步骤还包括:从数据库中获取所述第一业务数据的同时将获取的所述第一业务数据存储于所述内存缓存模块和数据库缓存模块并分别设置新的时间戳;
108.当所需要的业务数据为第二业务数据时,所述缓存查询步骤还包括:判断所述数
据库缓存模块中是否存在所述第二业务数据,若是,则从所述数据库缓存模块获取所述第二业务数据;若否,则执行所述数据库查询步骤;所述数据库查询步骤还包括:从数据库中获取所述第二业务数据的同时将所述第二业务数据存储所述数据库缓存模块中。
109.进一步地,所述指令获取步骤还包括:对所述数据查询指令进行拆分生成一个或多个子数据查询指令,并根据每个子数据查询指令执行所述缓存查询步骤和/或数据库查询步骤以得出对应的子业务数据或从其他微服务模块获取对应的子业务数据;所述反馈步骤,还用于将查询到的所有的子业务数据进行处理并组装后得到所需要的业务数据并反馈给用户。
110.进一步地,还包括:数据更新步骤:当存在需要修改的业务数据时对该业务数据进行修改,并将修改后的业务数据存储数据库中,同时删除缓存模块中对应的该业务数据。
111.实施例四
112.基于实施例二,本发明还提供另外一实施例,一种存储介质,该存储介质为计算机可读存储介质,其上存储有计算机程序,计算机程序为业务数据处理程序,所述业务数据处理程序被处理器执行时实现如以下步骤:
113.指令获取步骤:获取数据查询指令;
114.缓存查询步骤:根据所述数据查询指令对内存缓存模块和/或数据库缓存模块进行查询,以判断所述内存缓存模块和/或数据库缓存模块是否存在所需要的业务数据,若是,则执行缓存模块查询步骤;若否,则执行数据库查询步骤;
115.缓存模块查询步骤:从所述内存缓存模块或数据库缓存模块中获取所需要的业务数据,执行反馈步骤;
116.数据库查询步骤:从所述数据库中查询到所需要的业务数据,执行反馈步骤,同时将查询到的业务数据存储于对应缓存模块中;
117.反馈步骤:将查询到的所需要的业务数据反馈给用户。
118.进一步地,当所需要的业务数据为第一业务数据时,所述缓存查询步骤具体包括:
119.内存缓存查询步骤:判断所述内存缓存模块是否存在所述第一业务数据,若否,则执行所述数据库查询步骤;若是,则执行时间戳判断步骤;
120.时间戳判断步骤:判断所述内存缓存模块中的所述第一业务数据是否可用,若是,则从所述内存缓存模块中获取所述第一业务数据;若否,则执行数据库缓存查询步骤;
121.数据库缓存查询步骤:当所述数据库缓存模块中存在第一业务数据并且所述数据库缓存模块中的第一业务数据可用时,从数据库缓存模块中获取所述第一业务数据并将所述第一业务数据存储所述内存缓存模块并设置新的时间戳;当所述数据库缓存模块中不存在所述第一业务数据或者所述数据库缓存模块中的所述第一业务数据不可用时,执行所述数据库查询步骤;
122.其中,所述数据库查询步骤还包括:从数据库中获取所述第一业务数据的同时将获取的所述第一业务数据存储于所述内存缓存模块和数据库缓存模块并分别设置新的时间戳;
123.当所需要的业务数据为第二业务数据时,所述缓存查询步骤还包括:判断所述数据库缓存模块中是否存在所述第二业务数据,若是,则从所述数据库缓存模块获取所述第二业务数据;若否,则执行所述数据库查询步骤;所述数据库查询步骤还包括:从数据库中
获取所述第二业务数据的同时将所述第二业务数据存储所述数据库缓存模块中。
124.进一步地,所述指令获取步骤还包括:对所述数据查询指令进行拆分生成一个或多个子数据查询指令,并根据每个子数据查询指令执行所述缓存查询步骤和/或数据库查询步骤以得出对应的子业务数据或从其他微服务模块获取对应的子业务数据;所述反馈步骤,还用于将查询到的所有的子业务数据进行处理并组装后得到所需要的业务数据并反馈给用户。
125.进一步地,还包括:数据更新步骤:当存在需要修改的业务数据时对该业务数据进行修改,并将修改后的业务数据存储数据库中,同时删除缓存模块中对应的该业务数据。
126.上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
再多了解一些

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

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

相关文献