CN110659971B - 一种交易数据处理方法及装置 - Google Patents
一种交易数据处理方法及装置 Download PDFInfo
- Publication number
- CN110659971B CN110659971B CN201810697278.7A CN201810697278A CN110659971B CN 110659971 B CN110659971 B CN 110659971B CN 201810697278 A CN201810697278 A CN 201810697278A CN 110659971 B CN110659971 B CN 110659971B
- Authority
- CN
- China
- Prior art keywords
- account
- information
- database
- transaction
- accounting
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/125—Finance or payroll
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种交易数据处理方法及装置,该方法包括:将业务数据库中存储的账户的账户信息缓存至内存数据库中;根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。通过本发明提供的交易数据处理方法,不仅可以提高交易处理的实时性,还可以减少对业务数据库的操作频次。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种交易数据处理方法及装置。
背景技术
在账务***中,发生资金流转的账户通常需要进行记账处理。在记账处理的过程中,为了避免因对热点账户(例如,操作频次较大的账户)进行频繁操作,导致大量业务数据库资源被强占竞争,使得业务数据库发生死锁、账务***不可用,相关技术采用了缓冲记账的方法来实现对账户的记账处理,也即在每接收到一次交易请求后,先把请求明细记录在业务数据库中,并将记录数加1,当记录数达到某一数值或时间跨度达到某一数值时汇总所有请求明细并进行账户入账。可见,现有的缓冲记账处理方式实时性较差。
发明内容
本发明实施例提供一种交易数据处理方法及装置,以解决现有的缓冲记账处理方式实时性较差的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种交易数据处理方法。该方法包括:
将业务数据库中存储的账户的账户信息缓存至内存数据库中;
根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;
根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。
第二方面,本发明实施例还提供一种交易数据处理装置。该交易数据处理装置包括:
缓存模块,用于将业务数据库中存储的账户的账户信息缓存至内存数据库中;
交易处理模块,用于根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;
记账模块,用于根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。
第三方面,本发明实施例还提供一种交易数据处理装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的交易数据处理方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的交易数据处理方法的步骤。
本发明实施例中,通过将业务数据库中存储的账户的账户信息缓存至内存数据库中;根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,不仅可以提高交易处理的实时性,还可以减少对业务数据库的操作频次。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的交易数据处理方法的流程图;
图2是本发明又一实施例提供的交易数据处理方法的流程图;
图3是本发明实施例提供的交易数据处理装置的结构图;
图4是本发明又一实施例提供的交易数据处理装置的结构图;
图5是本发明又一实施例提供的交易数据处理装置的结构图;
图6是本发明又一实施例提供的交易数据处理装置的结构图;
图7是本发明又一实施例提供的交易数据处理装置的结构图;
图8是本发明又一实施例提供的交易数据处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种交易数据处理方法。参见图1,图1是本发明实施例提供的交易数据处理方法的流程图,如图1所示,包括以下步骤:
步骤101、将业务数据库中存储的账户的账户信息缓存至内存数据库中。
本发明实施例中,业务数据库可以是用于存储账户相关信息的数据库,上述账户相关信息可以包括账户名称、账户余额、账户状态(例如,销户状态、正常状态或锁定状态等)和账户交易流水等信息。上述内存数据库可以是指将数据缓存在内存中直接进行操作的数据库,例如,Redis数据库、SAP HANA数据库、FastDB数据库、SQLite数据库、BerkeleyDB数据库、GigaBase数据库等。
该步骤中,可以将业务数据库中存储的账户的账户信息缓存至内存数据库中,其中,上述账户信息可以包括业务数据库中存储的账户的全部或是部分信息。例如,上述账户信息可以包括账户的账户名称、账户余额和账户状态。
需要说明的是,上述账户状态可以包括销户状态、正常状态或锁定状态等,用于指示账户当前是否可用,例如,处于正常状态的账户可用,而处于销户状态或是锁定状态的账户不可用。
可以理解的是,本发明实施例可以将业务数据库中存储的所有账户的账户信息缓存至内存数据库中,也可以是仅将业务数据库中存储的部分账户的账户信息缓存至内存数据库中。上述业务数据库和内存数据库可以位于同一服务器中,也可以分别位于不同的服务器中。
需要说明的是,本发明实施例可以在业务数据库所在的服务器启动后立即将业务数据库中存储的账户的账户信息缓存至内存数据库中,也可以是在接收到交易请求后将业务数据库中存储的账户的账户信息缓存至内存数据库中,本发明实施例对此不做限定。
步骤102、根据所述内存数据库中缓存的第一账户的账户信息执行交易处理。
本发明实施例中,可以在接收到针对第一账户的交易请求的情况下,根据所述内存数据库中缓存的第一账户的账户信息执行交易处理。
需要说明的是,上述接收针对第一账户的交易请求可以是在步骤101之前执行,也即在接收针对第一账户的交易请求后将业务数据库中存储的账户的账户信息缓存至内存数据库中;上述接收针对第一账户的交易请求也可以是在步骤101之后且在步骤102之前执行,也即将业务数据库中存储的账户的账户信息缓存至内存数据库中后,若接收针对第一账户的交易请求,则根据所述内存数据库中缓存的第一账户的账户信息执行交易处理。
具体的,由于内存数据库中缓存有业务数据库中存储的账户的账户信息,因此,可以根据内存数据库中缓存的第一账户的账户信息执行交易处理,其中,上述第一账户可以是内存数据库中缓存的账户中的任一账户。实际应用中,上述根据内存数据库中缓存的第一账户的账户信息执行交易处理,可以是从内存数据库中读取第一账户的账户信息,并根据第一账户的账户信息在***内存中执行交易处理。
例如,可以在接收针对第一账户的交易请求的情况下,可以从内存数据库中读取第一账户的账户信息,根据第一账户的账户信息和交易请求在***内存中计算第一账户的账户余额,通过计算得到的第一账户的账户余额更新内存数据库中缓存的所述第一账户的账户余额,并将更新后的所述第一账户的账户余额返回给交易请求的发送端,并可记录会计凭证表、记账明细信息等记账信息,其中,上述记账信息可以存储于***内存、内存数据库或业务数据库等。
步骤103、根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。
本发明实施例中,上述交易处理的记账信息可以包括交易处理后的账户余额,和/或记账明细信息,其中,所述记账明细信息可以包括但不限于账户名称、交易时间、交易金额和记账方向等信息,其中,记账方向可以包括入账(如收入)或出账(如支出)等。需要说明的是,上述交易处理的记账信息可以存储于***内存、内存数据库或业务数据库等。
该步骤中,可以根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。可以理解的是,上述缓冲记账处理可以是指并不针对所接收的每个交易请求分别对业务数据库中的第一账户执行记账处理,而是根据每个交易请求对应的交易处理的记账信息在业务数据库中进行批量记账处理。例如,每间隔预设时长,根据所述交易处理的记账信息对所述业务数据库中所述第一账户进行批量记账处理。
本发明实施例中,由于可以根据内存数据库中缓存的账户的账户信息在***内存中实时的进行交易处理,从而可以提高交易处理的实时性。另外,由于根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,可以减少对业务数据库的操作频次,从而减少业务数据库资源被强占竞争的情况出现,避免因资源竞争导致业务数据库死锁,提高业务数据库使用效率。
参见图2,图2是本发明又一实施例提供的交易数据处理方法的流程图。本发明实施例与上一实施例的区别主要在于所述根据所述内存数据库中缓存的第一账户的账户信息执行交易处理进一步限定。本发明实施例中,所述根据所述内存数据库中缓存的第一账户的账户信息执行交易处理,包括:若接收到针对所述账户中的第一账户的交易请求,则根据所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件;若确定满足所述交易处理条件,则更新所述内存数据库中缓存的所述第一账户的账户余额,并将更新后的所述第一账户的账户余额返回给所述交易请求的发送端。
如图2所示,本发明实施例提供的交易数据处理方法包括以下步骤:
步骤201、将业务数据库中存储的账户的账户信息缓存至内存数据库中。
该步骤同上述步骤101,为避免重复,在此不做赘述。
步骤202、若接收到针对所述账户中的第一账户的交易请求,则根据所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件。
本发明实施例中,上述交易处理条件可以包括账户是否可用和/或账户余额是否够用等。具体的,可以根据账户状态判断账户是否可用,例如,若账户状态为销户状态或锁定状态,则确定账户不可用。上述账户余额是否够用可以基于交易金额和账户余额进行判断,例如,在交易请求为提现请求的情况下,若提现金额小于或等于账户余额,则可确定账户余额够用,若提现金额大于账户余额,则可确定账户余额不够用。
例如,可以在接收到针对所述账户中的第一账户的交易请求的情况下,从所述内存数据库中读取所述第一账户的账户信息,并在***内存中基于读取到的所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件。
需要说明的是,上述交易请求的发送端可以是客户端,也可以是服务端,本发明实施例对此不做限定。
步骤203、若确定满足所述交易处理条件,则更新所述内存数据库中缓存的所述第一账户的账户余额和记录交易处理的记账信息,并将更新后的所述第一账户的账户余额返回给所述交易请求的发送端。
该步骤中,在确定满***易处理条件的情况下,可以更新所述内存数据库中缓存的所述第一账户的账户余额,例如,可以基于记账方向、交易金额和内存数据库中缓存的第一账户的账户余额更新第一账户的账户余额。
在更新所述内存数据库中缓存的所述第一账户的账户余额之后,可以将更新后的第一账户的账户余额返回给所述交易请求的发送端,以便于发送端查看交易结果,或是根据交易结果继续执行后续处理等。
此外,在确定满***易处理条件的情况下,本发明实施例还可以记录本次交易处理的记账信息,其中,上述记账信息可以包括交易处理后的账户余额,和/或记账明细信息,其中,所述记账明细信息可以包括但不限于账户名称、交易时间、交易金额和记账方向等信息,其中,记账方向可以包括入账(如收入)或出账(如支出)等。需要说明的是,上述交易处理的记账信息可以存储于***内存、内存数据库或业务数据库等。
可选的,在确定不满足所述交易处理条件的情况下,可以向交易请求的发送端返回提示信息,或是结束流程等。
步骤204、根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。
该步骤同上述步骤103,为避免重复,在此不做赘述。
本发明实施例的交易数据处理方法,若接收到针对所述账户中的第一账户的交易请求,则根据所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件,并在确定满足所述交易处理条件,则更新所述内存数据库中缓存的所述第一账户的账户余额,并将更新后的所述第一账户的账户余额返回给所述交易请求的发送端,可以提高交易的成功率和实时性,并可以降低交易请求发送端后续业务处理的压力。另外,根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,可以减少对业务数据库的操作频次,避免因资源竞争导致业务数据库死锁,提高业务数据库使用效率。
可选的,所述交易处理的记账信息包括所述内存数据库中缓存的所述第一账户更新后的账户余额;
上述步骤103或步骤204,也即所述根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,可以包括:
若距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第一预设时长,则读取所述内存数据库中缓存的所述第一账户更新后的账户余额;
根据所述内存数据库中缓存的所述第一账户更新后的账户余额,更新所述业务数据库中所述第一账户的账户余额。
本发明实施例中,上述第一预设时长可以根据实际需求进行合理设置,例如,5秒、10秒等。
本发明实施例通过读取内存数据库中缓存的所述第一账户更新后的账户余额,更新所述业务数据库中所述第一账户的账户余额,实现较为简便,而且可以保证内存数据库缓存的账户的账户余额和业务数据库中存储的账户的账户余额一致。
可选的,所述交易处理的记账信息包括所述交易处理的记账明细信息;
上述步骤103或步骤204,也即所述根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,可以包括:
若所记录的记账明细信息的数量达到预设数量,或者距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第二预设时长,则汇总所记录的记账明细信息;
基于汇总后的记账明细信息,更新所述业务数据库中所述第一账户的账户余额。
本发明实施例中,上述记账明细信息可以包括但不限于账户名称、交易时间、交易金额和记账方向等信息,其中,记账方向可以包括入账(如收入)或出账(如支出)等。需要说明的是,上述记账明细信息可以在接收到交易请求后立即进行记录,也可以是在执行交易处理之后记录,本发明实施例对此不做限定。上述预设数量和第二预设时长均可以根据实际需求进行合理设置,例如,预设数量为10条、15条等,上述第二预设时长可以为5秒、10秒等。
具体的,可以针对每条交易请求记录一条记账明细信息,从而可以在若所记录的记账明细信息的数量达到预设数量,或者距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第二预设时长情况下,汇总所记录的针对第一账户的记账明细信息,例如,基于各条记账明细信息中的记账方向和交易金额,得到汇总后的记账方向和交易金额,并可以基于汇总后的记账方向和交易金额更新所述业务数据库中所述第一账户的账户余额。
例如,记账明细信息a为提现500元,记账明细信息b为提现100元,记账明细信息c为存入300元,记账明细信息d为存入100元,记账明细信息e为提现200元,通过汇总上述5条记账明细信息,可以得到汇总后的记账方向为提现(也即出账),汇总后的交易金额为400元。
需要说明的是,本发明实施例所汇总的记账明细信息为尚未参与业务数据库的账户余额更新的记账明细信息,例如,业务数据库前一次更新账户余额后所记录的记账明细信息。
本发明实施例基于记账明细信息更新所述业务数据库中所述第一账户的账户余额,可以保证业务数据库中所述第一账户的账户余额的准确性。
可选的,上述步骤101或步骤201,也即所述将业务数据库中存储的账户的账户信息缓存至内存数据库中,可以包括:
将业务数据库中存储的热点账户的账户信息缓存至内存数据库中,其中,所述热点账户为操作频次大于或等于预设次数的账户。
本发明实施例中,上述预设次数也可以根据实际需求进行合理设置,例如,500、1000等。
实际应用中,业务数据库中存储的热点账户较为容易出现资源被强占竞争的问题,因此,为了减少缓存的数据量,可以仅将业务数据库中存储的热点账户的账户信息缓存至内存数据库中。
本发明实施例中,对于针对热点账户的交易请求,可以根据内存数据库中缓存的热点账户的账户信息进行交易处理,而针对其他账户(除热点账户之外的账户)的交易请求,可以根据业务数据库中存储的账户的账户信息进行交易处理。
可选的,本发明实施例在接收到交易请求之后,可以通过先查询内存数据库以查询交易请求所针对的账户的账户信息,若内存数据库中未存储该交易请求所针对的账户的账户信息,则可以从业务数据库中查询该交易请求所针对的账户的账户信息;也可以预先存储热点账户列表,在交易请求所针对的账户位于热点账户列表中的情况下,可以查询内存数据库以查询交易请求所针对的账户的账户信息,在交易请求所针对的账户未位于热点账户列表中的情况下,可以查询业务数据库以查询交易请求所针对的账户的账户信息。
本发明实施例通过仅将业务数据库中存储的热点账户的账户信息缓存至内存数据库中,可以减少内存数据库缓存的数据量和数据处理量。
可选的,在上述步骤101或步骤201之后,也即所述将业务数据库中存储的账户的账户信息缓存至内存数据库中之后,所述方法还包括:
若接收到针对第二账户的查询请求,则从所述内存数据库中查询所述第二账户的账户余额,并将所查询到的所述第二账户的账户余额返回给所述查询请求的发送端。
本发明实施例中,上述第二账户可以是内存数据库中缓存的账户中的任一账户。
实际应用中,由于业务数据库进行缓冲记账处理,因此,若从业务数据库中查询某一账户的账户余额,若在业务数据库中该账户的账户余额尚未更新,则会导致查询结果不准确。因此,本发明实施例在接收到针对第二账户的查询请求的情况下,可以从内存数据库中查询所述第二账户的账户余额并返回给查询请求的发送端,从而可以保证所返回的账户余额的准确性。
可选的,所述内存数据库包括Redis数据库。
本发明实施例中,Redis数据库是一种基于键值(即Key-Value)的内存数据库,其支持存储的数据类型较多,包括字符串(即String)、链表(即List)、集合(即Set)、有序集合(即Sorted Set)和哈希(即Hash)等。这些数据类型都支持进栈(即Push)、出栈(即Pop)、增加(即Add)、移除(即Remove)、取交集、取并集和取差集等操作,而且这些操作都是原子性的。此外,Redis数据库还支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中。
本发明实施例通过将业务数据库中存储的账户的账户信息缓存至Redis数据库中,由于Redis数据库具有高并发、原子性操作等特性,从而基于Redis数据库中缓存的账户的账户信息执行交易处理,可以极大的减少业务数据库的处理压力和瓶颈,也可以提高交易处理的效率和实时性。
以下结合实例对本发明实施例提供的交易数据处理方法进行说明:
步骤a1、***启动时把账户余额缓存到Redis数据库中。
本发明实施例中,上述***可以是存储有业务数据库的账务***。
步骤a2、接收到交易请求,通过缓存在Redis数据库的账户信息判断账户是否可用,以及账户余额是否够用。
步骤a3、如果账户可用且账户余额够用,则进行交易入库,同时更新Redis数据库中存储的账户余额。
步骤a4、返回处理结果和账户余额给调用方。
上述调用方也即交易请求的发送端,可以是客户端,也可以是服务端。
步骤a5、***每隔预设时长(例如,10秒)发起一次汇总明细入账。
本发明实施例中,***可以每隔预设时长(例如,10秒)汇总未参与更新业务数据库账户余额的记账明细信息,并基于汇总后的记账明细信息更新业务数据库的账户余额。
本发明实施例提供的交易数据处理方法,不会直接对业务数据库记录进行操作,***启动时把账户余额加载到Redis缓存,利用Redis高并发、原子性操作等特性更新余额,待定时批量入账时再操作业务数据库,这样可以极大的减小业务数据库压力和瓶颈。此外,定时汇总明细入账,可以大大减小对数据库操作情况,避免导致资源竞争数据库死锁,提高数据库使用效率。此外,可以实时处理交易并返回结果和账户余额,可以降低调用方后续处理压力,且调用方无需等待和多次请求查询结果,可以节省交易处理时间,提高交易处理效率。
参见图3,图3是本发明实施例提供的交易数据处理装置的结构图。如图3所示,交易数据处理装置300包括:缓存模块301、交易处理模块302和记账模块303,其中:
缓存模块301,用于将业务数据库中存储的账户的账户信息缓存至内存数据库中;
交易处理模块302,用于根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;
记账模块303,用于根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。
可选的,所述交易处理的记账信息包括所述内存数据库中缓存的所述第一账户更新后的账户余额;
参见图4,所述记账模块303,包括:
读取单元3031,用于若距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第一预设时长,则读取所述内存数据库中缓存的所述第一账户更新后的账户余额;
第一更新单元3032,用于根据所述内存数据库中缓存的所述第一账户更新后的账户余额,更新所述业务数据库中所述第一账户的账户余额。
可选的,所述交易处理的记账信息包括所述交易处理的记账明细信息;
参见图5,所述记账模块303,包括:
汇总单元3033,用于若所记录的记账明细信息的数量达到预设数量,或者距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第二预设时长,则汇总所记录的记账明细信息;
第二更新单元3034,用于基于汇总后的记账明细信息,更新所述业务数据库中所述第一账户的账户余额。
可选的,参见图6,所述交易处理模块302,包括:
判断单元3021,用于若接收到针对所述账户中的第一账户的交易请求,则根据所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件;
第三更新单元3022,用于若确定满足所述交易处理条件,则更新所述内存数据库中缓存的所述第一账户的账户余额和记录交易处理的记账信息,并将更新后的所述第一账户的账户余额返回给所述交易请求的发送端。
可选的,所述缓存模块具体用于:
将业务数据库中存储的热点账户的账户信息缓存至内存数据库中,其中,所述热点账户为操作频次大于或等于预设次数的账户。
可选的,参见图7,所述装置还包括:
查询模块304,用于所述将业务数据库中存储的账户的账户信息缓存至内存数据库中之后,若接收到针对第二账户的查询请求,则从所述内存数据库中查询所述第二账户的账户余额,并将所查询到的所述第二账户的账户余额返回给所述查询请求的发送端。
可选的,所述内存数据库包括Redis数据库。
本发明实施例提供的交易数据处理装置300能够实现图1至图2的方法实施例中各个过程,为避免重复,这里不再赘述。
本发明实施例的交易数据处理装置300,缓存模块301,用于将业务数据库中存储的账户的账户信息缓存至内存数据库中;交易处理模块302,用于根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;记账模块303,用于根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。不仅可以提高交易处理的实时性,还可以减少对业务数据库的操作频次。
参见图8,图8是本发明又一实施提供的交易数据处理装置的结构图,如图8所示,交易数据处理装置800包括:处理器801、存储器802及存储在所述存储器802上并可在所述处理器上运行的计算机程序,交易数据处理装置800中的各个组件通过总线接口803耦合在一起,所述计算机程序被所述处理器801执行时实现如下步骤:
将业务数据库中存储的账户的账户信息缓存至内存数据库中;
根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;
根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理。
可选的,所述交易处理的记账信息包括所述内存数据库中缓存的所述第一账户更新后的账户余额;
所述计算机程序被所述处理器801执行时还用于实现如下步骤:
若距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第一预设时长,则读取所述内存数据库中缓存的所述第一账户更新后的账户余额;
根据所述内存数据库中缓存的所述第一账户更新后的账户余额,更新所述业务数据库中所述第一账户的账户余额。
可选的,所述交易处理的记账信息包括所述交易处理的记账明细信息;
所述计算机程序被所述处理器801执行时还用于实现如下步骤:
若所记录的记账明细信息的数量达到预设数量,或者距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第二预设时长,则汇总所记录的记账明细信息;
基于汇总后的记账明细信息,更新所述业务数据库中所述第一账户的账户余额。
可选的,所述计算机程序被所述处理器801执行时还用于实现如下步骤:
若接收到针对所述账户中的第一账户的交易请求,则根据所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件;
若确定满足所述交易处理条件,则更新所述内存数据库中缓存的所述第一账户的账户余额和记录交易处理的记账信息,并将更新后的所述第一账户的账户余额返回给所述交易请求的发送端。
可选的,所述计算机程序被所述处理器801执行时还用于实现如下步骤:
将业务数据库中存储的热点账户的账户信息缓存至内存数据库中,其中,所述热点账户为操作频次大于或等于预设次数的账户。
可选的所述计算机程序被所述处理器801执行时还用于实现如下步骤:
所述将业务数据库中存储的账户的账户信息缓存至内存数据库中之后,若接收到针对第二账户的查询请求,则从所述内存数据库中查询所述第二账户的账户余额,并将所查询到的所述第二账户的账户余额返回给所述查询请求的发送端。
可选的,所述内存数据库包括Redis数据库。
可选的,本发明实施例还提供一种交易数据处理装置,包括处理器801,存储器802,存储在存储器802上并可在所述处理器801上运行的计算机程序,该计算机程序被处理器801执行时实现上述交易数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述交易数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (10)
1.一种交易数据处理方法,其特征在于,所述方法包括:
将业务数据库中存储的账户的账户信息缓存至内存数据库中,所述账户信息包括账户的账户名称、账户余额和账户状态;
根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;
根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理;
所述根据所述内存数据库中缓存的第一账户的账户信息执行交易处理,包括:在接收针对第一账户的交易请求的情况下,从内存数据库中读取第一账户的账户信息,根据第一账户的账户信息和交易请求在***内存中计算第一账户的账户余额,通过计算得到的第一账户的账户余额更新内存数据库中缓存的所述第一账户的账户余额。
2.根据权利要求1所述的方法,其特征在于,所述交易处理的记账信息包括所述内存数据库中缓存的所述第一账户更新后的账户余额;
所述根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,包括:
若距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第一预设时长,则读取所述内存数据库中缓存的所述第一账户更新后的账户余额;
根据所述内存数据库中缓存的所述第一账户更新后的账户余额,更新所述业务数据库中所述第一账户的账户余额。
3.根据权利要求1所述的方法,其特征在于,所述交易处理的记账信息包括所述交易处理的记账明细信息;
所述根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理,包括:
若所记录的记账明细信息的数量达到预设数量,或者距离前一次更新所述业务数据库中所述第一账户的账户余额的时长达到第二预设时长,则汇总所记录的记账明细信息;
基于汇总后的记账明细信息,更新所述业务数据库中所述第一账户的账户余额。
4.根据权利要求1所述的方法,其特征在于,所述根据所述内存数据库中缓存的第一账户的账户信息执行交易处理,包括:
若接收到针对所述账户中的第一账户的交易请求,则根据所述内存数据库中缓存的所述第一账户的账户信息判断是否满***易处理条件;
若确定满足所述交易处理条件,则更新所述内存数据库中缓存的所述第一账户的账户余额和记录交易处理的记账信息,并将更新后的所述第一账户的账户余额返回给所述交易请求的发送端。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述将业务数据库中存储的账户的账户信息缓存至内存数据库中,包括:
将业务数据库中存储的热点账户的账户信息缓存至内存数据库中,其中,所述热点账户为操作频次大于或等于预设次数的账户。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述将业务数据库中存储的账户的账户信息缓存至内存数据库中之后,所述方法还包括:
若接收到针对第二账户的查询请求,则从所述内存数据库中查询所述第二账户的账户余额,并将所查询到的所述第二账户的账户余额返回给所述查询请求的发送端。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述内存数据库包括Redis数据库。
8.一种交易数据处理装置,其特征在于,所述装置包括:
缓存模块,用于将业务数据库中存储的账户的账户信息缓存至内存数据库中,所述账户信息包括账户的账户名称、账户余额和账户状态;
交易处理模块,用于根据所述内存数据库中缓存的第一账户的账户信息执行交易处理;
记账模块,用于根据所述交易处理的记账信息,对所述业务数据库中所述第一账户进行缓冲记账处理;
所述交易处理模块具体用于:在接收针对第一账户的交易请求的情况下,从内存数据库中读取第一账户的账户信息,根据第一账户的账户信息和交易请求在***内存中计算第一账户的账户余额,通过计算得到的第一账户的账户余额更新内存数据库中缓存的所述第一账户的账户余额。
9.一种交易数据处理装置,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的交易数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的交易数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697278.7A CN110659971B (zh) | 2018-06-29 | 2018-06-29 | 一种交易数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697278.7A CN110659971B (zh) | 2018-06-29 | 2018-06-29 | 一种交易数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659971A CN110659971A (zh) | 2020-01-07 |
CN110659971B true CN110659971B (zh) | 2021-04-27 |
Family
ID=69027641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810697278.7A Active CN110659971B (zh) | 2018-06-29 | 2018-06-29 | 一种交易数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659971B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535374A (zh) * | 2020-04-15 | 2021-10-22 | 马上消费金融股份有限公司 | 一种业务指标的处理方法及装置 |
CN113220730B (zh) * | 2021-05-28 | 2024-03-26 | 中国农业银行股份有限公司 | 业务数据的处理*** |
CN113781034B (zh) * | 2021-09-29 | 2024-04-30 | 上海瀚之友信息技术服务有限公司 | 一种基于缓存的记账及检查方法 |
CN116051117A (zh) * | 2023-03-07 | 2023-05-02 | 天津金城银行股份有限公司 | 热点账户余额的控制方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620703A (zh) * | 2008-07-04 | 2010-01-06 | 阿里巴巴集团控股有限公司 | 一种缓冲记账方法及装置 |
CN106303428A (zh) * | 2016-08-18 | 2017-01-04 | 杭州蛮牛科技有限公司 | 一种安防云平台 |
CN106952158A (zh) * | 2017-03-17 | 2017-07-14 | 证通股份有限公司 | 解决热点账户问题的记账方法及设备 |
CN107016604A (zh) * | 2017-02-22 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 缓冲记账的方法、装置及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140075026A1 (en) * | 2012-09-13 | 2014-03-13 | Lung Cheng Technology Ltd. | Cloud database management method |
CN105808905B (zh) * | 2014-12-30 | 2019-04-02 | 金蝶软件(中国)有限公司 | 余额计算方法及装置 |
-
2018
- 2018-06-29 CN CN201810697278.7A patent/CN110659971B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620703A (zh) * | 2008-07-04 | 2010-01-06 | 阿里巴巴集团控股有限公司 | 一种缓冲记账方法及装置 |
CN106303428A (zh) * | 2016-08-18 | 2017-01-04 | 杭州蛮牛科技有限公司 | 一种安防云平台 |
CN107016604A (zh) * | 2017-02-22 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 缓冲记账的方法、装置及设备 |
CN106952158A (zh) * | 2017-03-17 | 2017-07-14 | 证通股份有限公司 | 解决热点账户问题的记账方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110659971A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659971B (zh) | 一种交易数据处理方法及装置 | |
CN108984553B (zh) | 缓存方法和装置 | |
CN102780603B (zh) | 网站流量控制方法及装置 | |
CN112637305B (zh) | 一种基于缓存的数据存储与查询方法、装置、设备及介质 | |
CN109842621B (zh) | 一种减少token存储数量的方法及终端 | |
CN111159219B (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
CN110737857A (zh) | 一种后端分页加速方法、***、终端及存储介质 | |
CN114358923A (zh) | 一种业务数据的处理方法、装置、存储介质及电子设备 | |
CN106709805B (zh) | 一种用户收益数据获取方法及*** | |
CN110704486A (zh) | 数据处理方法、装置、***、存储介质和服务器 | |
CN112988812B (zh) | 库存数据的处理方法、装置、设备及存储介质 | |
CN107451301B (zh) | 实时投递账单邮件的处理方法、装置、设备和存储介质 | |
CN111242621B (zh) | 交易数据存储方法、装置、设备及存储介质 | |
CN113360210A (zh) | 数据对账方法、装置、计算机设备和存储介质 | |
CN110233843B (zh) | 一种用户请求的处理方法及装置 | |
CN110782310B (zh) | 从第三方平台异步获取用户属性信息的方法、装置和*** | |
CN110992116A (zh) | 基于etc***的电子***生成方法、装置、设备及存储介质 | |
CN111259053A (zh) | 一种账单查询的方法及装置 | |
CN111143365B (zh) | 一种数据分表方法、装置、计算机设备及存储介质 | |
CN114218471A (zh) | 数据查询方法、装置、***、电子设备及存储介质 | |
CN107896246A (zh) | 基于xbrl的消息传播*** | |
CN112749190B (zh) | 数据查询方法、装置、计算设备及计算机存储介质 | |
CN111274203B (zh) | 一种话单存储***及方法 | |
CN107025266B (zh) | 业务数据的处理方法和装置 | |
CN114385267B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |