CN116703388A - 热点账户的数据处理方法及装置、存储介质及电子设备 - Google Patents

热点账户的数据处理方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116703388A
CN116703388A CN202310619578.4A CN202310619578A CN116703388A CN 116703388 A CN116703388 A CN 116703388A CN 202310619578 A CN202310619578 A CN 202310619578A CN 116703388 A CN116703388 A CN 116703388A
Authority
CN
China
Prior art keywords
account
transaction
hot spot
running water
data
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.)
Pending
Application number
CN202310619578.4A
Other languages
English (en)
Inventor
马强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202310619578.4A priority Critical patent/CN116703388A/zh
Publication of CN116703388A publication Critical patent/CN116703388A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/227Payment schemes or models characterised in that multiple accounts are available, e.g. to the payer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供一种热点账户的数据处理方法及装置、存储介质及电子设备,应用于金融领域或其他领域,包括:在Redis缓存模块中确定与热点账户发送的交易请求的交易类型对应的数据集合,在数据集合中生成热点账户的账户交易数据;当满足流水生成条件时,在数据库的流水表中生成交易流水;执行第一定时任务,基于确定的待处理交易流水,更新数据库中的业务表;执行第二定时任务,基于待处理交易流水更新热点账户在Redis缓存模块的账户余额信息。本发明使用Redis缓存模块和定时任务结合的方式对热点账户的数据进行处理,可以缓存数据后批量的处理数据,减少对热点账户的加锁释锁操作,提高性能。

Description

热点账户的数据处理方法及装置、存储介质及电子设备
技术领域
本发明涉及数据处理技术领域,特别涉及一种热点账户的数据处理方法及装置、存储介质及电子设备。
背景技术
在银行系统中,银行账户进行交易时,银行或是第三方支付系统通常会对银行账户在数据库中的金额数据进行处理,从而对银行账户的金额进行处理,例如入账时需要增加银行账户的金额,出账时需要减少银行账户的金额。在对银行账户在数据库中的金额数据进行处理时,会对银行账户进行锁定,在处理完成后,才将银行账户释放。
目前,银行系统的银行账户中存在着同一时间被多个客户访问的热点账户的情况,这样需要频繁的对热点账户进行加锁释锁,从而对热点账户的金额数据进行处理,频繁的对热点账户进行加锁释锁,会导致该账户成为数据库的热点,产生性能瓶颈点,影响数据库的性能。
发明内容
有鉴于此,本发明提供一种热点账户的数据处理方法及装置、存储介质及电子设备,本发明通过使用Redis缓存模块保存热点账户的账户交易数据,并使用定时任务将热点账户的交易流水对数据库的业务表进行更新,然后再基于业务表更新热点账户在Redis缓存模块的账户余额信息,由此可以定时对热点账户的数据进行处理,减少对热点账户的加锁释锁操作,避免产生性能瓶颈点,提高性能。
为实现上述目的,本发明实施例提供如下技术方案:
一种热点账户的数据处理方法,包括:
接收热点账户的交易请求,并确定所述交易请求的交易类型;
在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,并在该数据集合中生成所述热点账户的账户交易数据;
判断所述交易请求是否满足预设的流水生成条件;
当确定所述交易请求满足所述流水生成条件时,在数据库的流水表中生成所述热点账户的交易流水;
当预设的第一定时任务满足预设的执行条件时,执行所述第一定时任务,以在所述流水表中确定所述热点账户的待处理交易流水,所述待处理交易流水为所述热点账户的未入账状态的交易流水;并基于所述待处理交易流水更新所述数据库中的业务表的数据,并将待处理交易流水在所述流水表中所对应的交易流水更新为已入账状态;
当预设的第二定时任务满足预设的执行条件时,执行所述第二定时任务,以基于所述待处理交易流水更新所述热点账户在所述Redis缓存模块的账户余额信息。
上述的方法,可选的,所述确定所述交易请求的交易类型,包括:
对所述交易请求进行解析,获取所述交易请求中的交易标识;
当所述交易标识为入账标识时,确定所述交易请求的交易类型为入账;
当所述交易标识为出账标识时,确定所述交易请求的交易类型为出账。
上述的方法,可选的,所述在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,包括:
当所述交易请求的交易类型为入账时,将所述Redis缓存模块中的账户变更时间记录集合确定为与所述交易类型对应的数据集合;
当所述交易请求的交易类型为出账时,将所述Redis缓存模块中的账户变更时间记录集合和账户余额记录集合确定为与所述交易类型对应的数据集合。
上述的方法,可选的,所述在该数据集合中生成所述热点账户的账户交易数据,包括:
当所述交易请求的交易类型为入账时,在所述账户变更时间记录集合中生成所述热点账户的账户变更记录;
当所述交易请求的交易类型为出账时,确定所述热点账户在Redis缓存模块的当前账户余额;
对所述当前账户余额和所述交易请求中的扣款金额进行减法运算,得到所述热点账户的剩余金额;
基于所述剩余金额更新所述热点账户在所述账户余额记录集合中的余额信息,并在所述账户变更时间记录集合中生成所述热点账户的账户变更记录。
上述的方法,可选的,所述判断所述交易请求是否满足预设的流水生成条件,包括:
当所述交易请求的交易类型为入账时,确定所述交易请求满足预设的流水生成条件;
当所述交易请求的交易类型为出账时,判断所述热点账户的剩余金额是否大于或等于零;
当确定所述热点账户的剩余金额大于或等于零时,确定所述交易请求满足所述流水生成条件;
当确定所述热点账户的剩余金额小于零时,确定所述交易请求不满足流水生成条件。
上述的方法,可选的,所述基于所述数据库中的业务表更新所述热点账户在所述Redis缓存模块的账户余额信息,包括:
将所述待处理交易流水中属于入账交易的流水确定为目标交易流水;
基于所述目标交易流水中的入账金额对所述热点账户在所述Redis缓存模块的账户余额信息进行更新。
上述的方法,可选的,还包括:
确定所述数据集合中的无效数据,并将所述无效数据删除。
一种热点账户的数据处理装置,包括:
接收单元,用于接收热点账户的交易请求,并确定所述交易请求的交易类型;
第一生成单元,用于在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,并在该数据集合中生成所述热点账户的账户交易数据;
判断单元,用于判断所述交易请求是否满足预设的流水生成条件;
第二生成单元,用于当确定所述交易请求满足所述流水生成条件时,在数据库的流水表中生成所述热点账户的交易流水;
第一执行单元,用于当预设的第一定时任务满足预设的执行条件时,执行所述第一定时任务,以在所述流水表中确定所述热点账户的待处理交易流水,所述待处理交易流水为所述热点账户的未入账状态的交易流水;并基于所述待处理交易流水更新所述数据库中的业务表的数据,并将待处理交易流水在所述流水表中所对应的交易流水更新为已入账状态;
第二执行单元,用于当预设的第二定时任务满足预设的执行条件时,执行所述第二定时任务,以基于所述待处理交易流水更新所述热点账户在所述Redis缓存模块的账户余额信息。
上述的装置,可选的,所述接收单元,包括:
解析子单元,用于对所述交易请求进行解析,获取所述交易请求中的交易标识;
第一确定子单元,用于当所述交易标识为入账标识时,确定所述交易请求的交易类型为入账;
第二确定子单元,用于当所述交易标识为出账标识时,确定所述交易请求的交易类型为出账。
上述的装置,可选的,所述第一生成单元执行在预设的Redis缓存模块中确定与所述交易类型对应的数据集合的步骤,包括:
当所述交易请求的交易类型为入账时,将所述Redis缓存模块中的账户变更时间记录集合确定为与所述交易类型对应的数据集合;
当所述交易请求的交易类型为出账时,将所述Redis缓存模块中的账户变更时间记录集合和账户余额记录集合确定为与所述交易类型对应的数据集合。
上述的装置,可选的,所述第一生成单元,包括:
第一生成子单元,用于当所述交易请求的交易类型为入账时,在所述账户变更时间记录集合中生成所述热点账户的账户变更记录;
第三确定子单元,用于当所述交易请求的交易类型为出账时,确定所述热点账户在Redis缓存模块的当前账户余额;
运算子单元,用于对所述当前账户余额和所述交易请求中的扣款金额进行减法运算,得到所述热点账户的剩余金额;
第二生成子单元,用于基于所述剩余金额更新所述热点账户在所述账户余额记录集合中的余额信息,并在所述账户变更时间记录集合中生成所述热点账户的账户变更记录。
上述的装置,可选的,所述判断单元,包括:
第四确定子单元,用于当所述交易请求的交易类型为入账时,确定所述交易请求满足预设的流水生成条件;
判断子单元,用于当所述交易请求的交易类型为出账时,判断所述热点账户的剩余金额是否大于或等于零;
第五确定子单元,用于当确定所述热点账户的剩余金额大于或等于零时,确定所述交易请求满足所述流水生成条件;
第六确定子单元,用于当确定所述热点账户的剩余金额小于零时,确定所述交易请求不满足流水生成条件。
上述的装置,可选的,所述第二执行单元,包括:
第六确定子单元,用于将所述待处理交易流水中属于入账交易的流水确定为目标交易流水;
更新子单元,用于基于所述目标交易流水中的入账金额对所述热点账户在所述Redis缓存模块的账户余额信息进行更新。
上述的装置,可选的,还包括:
删除单元,用于确定所述数据集合中的无效数据,并将所述无效数据删除。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上所述的热点账户的数据处理方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的热点账户的数据处理方法。
与现有技术相比,本发明具有以下优点:
本发明提供一种热点账户的数据处理方法及装置、存储介质及电子设备,包括:接收热点账户的交易请求,并确定交易请求的交易类型;在预设的Redis缓存模块中确定与交易类型对应的数据集合,并在该数据集合中生成热点账户的账户交易数据;判断交易请求是否满足预设的流水生成条件;当确定交易请求满足流水生成条件时,在数据库的流水表中生成热点账户的交易流水;当预设的第一定时任务满足预设的执行条件时,执行第一定时任务,以在流水表中确定热点账户的待处理交易流水,待处理交易流水为热点账户的未入账状态的交易流水;并基于待处理交易流水更新数据库中的业务表的数据,并将待处理交易流水在流水表中所对应的交易流水更新为已入账状态;当预设的第二定时任务满足预设的执行条件时,执行第二定时任务,以基于待处理交易流水更新热点账户在Redis缓存模块的账户余额信息。本发明使用Redis缓存模块保存热点账户的账户交易数据,并使用定时任务基于热点账户的交易流水更新数据库的业务表,根据业务表更新热点账户在Redis缓存模块的数据,将Redis缓存模块和定时任务相结合,将数据缓存后批量处理,由此,可以批量的对热点账户的数据进行处理,减少对热点账户的加锁释锁操作,避免产生性能瓶颈点,提高性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种热点账户的数据处理方法的方法流程图;
图2为本发明实施例提供的确定交易请求的交易类型的方法流程图;
图3为本发明实施例提供的当交易请求的交易类型为出账时,在数据集合中生成热点账户的账户交易数据的方法流程图;
图4为本发明实施例提供的当交易请求的交易类型是出账时,判断该交易请求是否满足流水条件的方法流程图;
图5为本发明实施例提供的一种热点账户的数据处理装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在银行系统中,存在同一时间被很多客户同时访问的热点账户,举个例子,比如个人客户通过手机银行缴纳社保,那么税务局开立在我行的账户就可能在某个时间点同时被很多客户同时修改余额,客户缴费余额增加,客户退款余额减少。但由于数据库系统需要实现事务机制,以满足银行系统数据安全的需要,导致并发性能不高。
热点账户交易是性能瓶颈,在银行或者第三方支付系统的账务数据库的处理中,数据从一个账户转出,或者有数据转入一个账户,账户都会收到记账请求,并都有一个记账处理的过程。记账处理过程主要包括两部分,一是记录记账凭证,二是更新账户的余额。为了保证账户不被其他请求影响数据的准确性,在进行记账处理时,会先对账户的资源加锁,记账处理完毕后会自动释放锁。随着账务处理业务量的增大,账务数据库中的账户常常会在瞬间产生多个并发操作,但所有对应的并发线程中只有一个线程能够持有当前账户的资源锁,其他线程必须等待该锁被释放后再逐一进行记账处理,这样该账户将会被频繁加锁释锁,使该账户成为账务数据库热点,产生性能瓶颈点,严重影响账务数据库的性能。
本发明提出一种新型的热点账户的数据处理方式,该方式在保证银行金融交易数据的绝对安全的基础上,优化了热点账户的高并发性能,避免产生性能瓶颈点,提高数据库的性能。
本发明可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本发明可以应用在银行系统中,优选的,本发明提供的银行系统由Redis缓存模块和数据库组成。
参照图1,为本发明实施例提供的一种热点账户的数据处理方法的方法流程图,具体说明如下所述。
S101、接收热点账户的交易请求,并确定交易请求的交易类型。
本发明中的热点账户可以是工作人员配置在系统中的。
需要说明的是,交易请求中包含请求时间、交易类型以及交易数据等内容。
在接收到交易请求后,需要确定交易请求的交易类型,具体流程参照图2,具体说明如下所述。
S201、对交易请求进行解析,获取交易请求中的交易标识,判断该交易标识是否为入账标识;当交易标识为入账标识时,执行S202;当交易标识不为入账标识时,执行S203。
需要说明的是,交易标识有两种,一种是入账标识,另一种是出账标识,不同的交易类型的交易标识是不同的。
S202、确定交易请求的交易类型为入账。
优选的,交易请求的交易类型为入账时,可以确定该交易请求所请求的交易为入账交易。
S203、确定交易标识为出账标识,并确定交易请求的交易类型为出账。
优选的,交易请求的交易类型为出账时,可以确定该交易请求所请求的交易为出账交易。
本发明使用交易标识可以准确的确定交易请求的交易类型。在确定交易请求的交易类型后,后续可以执行与交易类型对应的实现逻辑。
S102、在预设的Redis缓存模块中确定与交易类型对应的数据集合,并在该数据集合中生成热点账户的账户交易数据。
Redis缓存模块中设置了两个集合,分别为账户余额记录集合和账户变更时间记录集合,进一步的,账户余额记录集合中保存热点账户中的金额等内容,账户变更时间记录集合中保存热点账户请求交易的时间等内容。
不同的交易类型对应的数据集合是不同的,具体如:当交易请求的交易类型为入账时,将Redis缓存模块中的账户变更时间记录集合确定为与交易类型对应的数据集合;当交易请求的交易类型为出账时,将Redis缓存模块中的账户变更时间记录集合和账户余额记录集合确定为与交易类型对应的数据集合。
需要说明的是,不同的交易类型生成热点账户的账户交易数据的方式是不同的,示例性的:当交易请求的交易类型为入账时,在账户变更时间记录集合中生成热点账户的账户变更记录,该账户变更记录即为热点账户的账户交易数据;进一步的,此时的交易请求中包含了入账金额、交易时间戳、账户号等信息;生成的账户变更记录中包含但不限于热点账户的账户信息以及交易时间戳等内容,其中,交易时间戳可以是热点账户请求进行交易时的时间戳。
参照图3,为本发明实施例提供的当交易请求的交易类型为出账时,在数据集合中生成热点账户的账户交易数据的方法流程图,具体说明如下所述。
S301、确定热点账户在Redis缓存模块的当前账户余额。
优选的,可以在账户余额记录集合中确定热点账户的账户信息,并基于将账户信息中记载的金额作为当前账户余额。
S302、对当前账户余额和交易请求中的扣款金额进行减法运算,得到热点账户的剩余金额。
需要说明的是,此时的交易请求中有包含需要扣除的金额,即扣款金额。使用当前账户余额减去扣款金额,即可得到热点账户的剩余金额,需要说明的是,此处的剩余金额为热点账户在Redis缓存模块中的金额。
S303、基于剩余金额更新热点账户在账户余额记录集合中的余额信息,并在账户变更时间记录集合中生成热点账户的账户变更记录。
确定热点账户在账户余额记录集合中的余额记录,并将余额记录中记载的金额更新为S302中的剩余金额,从而完成热点账户在账户余额记录集合中的余额信息的更新。进一步的,账户余额记录集合中包含了多个热点账户的余额记录,余额记录中包含但不限于热点账户的账号和以及该账号的金额的信息。
进一步的,还需要在账户变更时间记录集合中生成热点账户的账户变更记录。优选的,此处生成的账户变更记录以及更新后的余额信息均为生成的账户交易数据。
本发明在Redis缓存模块中生成交易请求的账户交易数据,还支持在Redis缓存模块进行扣款操作,由此可以有效的减少对热点账户进行加锁释锁进行扣款和入账的操作,进而提高系统的性能。
S103、判断交易请求是否满足预设的流水生成条件。
不同的交易类型的流水生成条件是不同的,当交易请求的交易类型为入账时,该交易请求即满足流水生成条件;当交易请求的交易类型是出账时,判断该交易请求是否满足流水条件的过程如图4所示,具体说明如下所述。
S401、判断热点账户的剩余金额是否大于或等于零;当确定热点账户的剩余金额大于或等于零时,执行S402;当确定热点账户的剩余金额小于零时,执行S403。
S402、确定交易请求满足流水生成条件。
S403、确定交易请求不满足流水生成条件。
判断热点账户的剩余金额是否大于等于零,当热点账户的剩余金额大于或等于零时,即可确定执行与该交易请求对应的扣款时没有出现超额扣款的情况,由此,确定该交易请求满足流水生成条件。
需要说明的是,当热点账户的剩余金额小于零时,说明在执行与该交易请求对应的扣款时出现超额扣款的情况,此时确定该交易请求不满足流水生成条件,进一步的,可以进行扣款报错处理,即向工作人员发出余额不足的报警,以便工作人员可以及时介入处理,避免后续的扣款出现错误。
本发明在出现超额扣款后可以及时报错,避免热点账户在超额扣款的情况下还进行账户的入账和出账处理,导致系统记账混乱的情况。
S104、当确定交易请求满足流水生成条件时,在数据库的流水表中生成热点账户的交易流水。
该流水表为临时流水表,该表主要用于保存未入账的交易流水;在流水表中生成的热点账户交易流水的初始状态为未入账状态。
需要说明的是,当交易请求的交易类型为出账时,交易流水中包含但不限于出账金额、账户信息、账户在Redis缓存模块的余额信息、流水状态等内容;当交易请求的交易类型为入账时,交易流水中包含但不限于入账金额、交易时间戳、账户信息以及流水状态等内容。
S105、当预设的第一定时任务满足预设的执行条件时,执行第一定时任务,以在流水表中确定热点账户的待处理交易流水,待处理交易流水为热点账户的未入账状态的交易流水;并基于待处理交易流水更新数据库中的业务表的数据,并将待处理交易流水在流水表中所对应的交易流水更新为已入账状态。
需要说明的是,第一定时任务可以是按照周期执行的或是通过指令触发执行的,当按照周期执行时,存在对应的执行时间,在当前时间达到第一定时任务的执行时间点时,第一定时任务就满足执行条件,具体如,隔五分钟就执行第一定时任务,每隔五分钟的时间点就是执行时间点,在当前时间达到执行时间点时,就满足定时任务的执行条件。
需要说明的是,交易流水中的流水状态可以表征该交易流水的状态,交易流水的状态为未入账状态,或是已入账状态。
优选的,数据库中的业务表包括但不限于账户表和明细表,更新数据库中的业务表的数据实际上是更新热点数据在数据库中的账户数据,具体如基于各个未入账状态的交易流水在数据库中对热点账户进行入账和出账处理。
S106、当预设的第二定时任务满足预设的执行条件时,执行第二定时任务,以基于待处理交易流水更新热点账户在Redis缓存模块的账户余额信息。
第二定时任务也可以是按照周期执行的,具体的说明可以参照关于第一执行任务的说明,此处不再进行赘述。
优选的,更新热点账户在Redis缓存模块的账户余额信息的过程如:将待处理交易流水中属于入账交易的流水确定为目标交易流水;基于目标交易流水中的入账金额对热点账户在Redis缓存模块的账户余额信息进行更新。优选的,可以将目标交易流水中的入账金额与热点账户在Redis缓存模块的账户余额进行加法运算,得到最终金额,并将该最终金额更新在热点账户在Redis缓存模块的账户余额信息中。运算得到的最终金额为热点账户的真正余额。
进一步的,更新热点账户在Redis缓存模块中的账户余额信息的方式还可以为:基于业务表中的数据,确定热点账户在数据库的账户余额,并基于热点账户在数据库的账户余额更新热点账户在Redis缓存模块的账户余额信息;需要说明的是,业务表中的数据包含了热点账户的入账和出账的数据,由此可以根据业务表的数据确定热点账户的实际金额数,进一步的,热点账户在数据库的账户余额为热点账户的真正账户余额。
基于热点账户在数据库的账户余额更新热点账户在Redis缓存模块的账户余额信息,可以避免出现热点账户的实际余额可以支持正常进行扣款,但是Redis缓存模块中余额不足导致超额扣款的情况;因此,使用第二定时任务及时的更新热点账户在Redis缓存模块中的账户余额信息,可以避免出现超额扣款的情况,进而防止热点账户出现账目混乱的情况。
通过使用第二定时任务可以及时的更新热点账户在Redis缓存模块的账户余额信息,可以有效避免出现热点账户在Redis缓存模块中进行扣款时出现超额扣款的情况。
进一步的,在更新热点账户在Redis缓存模块中的账户余额信息时,可以先检查热点账户在Redis缓存模块中的余额是否小于零,当不小于零时,可以正常更新,当小于零时,可以触发第一定时任务执行后再根据更新后的业务表进行更新,因为定时任务在执行时会消耗时间,而这个时间段内可能新增了很多未入账的交易流水,因此需要将这些并发的新流水再次入账,使得同步到缓存的数据几乎等于实际账户余额数据。
优选的,本发明还可以将数据集合中的无效数据进行清理,从而优化Redis缓存模块的空间,进一步的,无效数据可以为账户变更时间记录集合中的过期的账户变更时间记录。
本发明实施例提供的方法中,接收热点账户的交易请求,并确定交易请求的交易类型;在预设的Redis缓存模块中确定与交易类型对应的数据集合,并在该数据集合中生成热点账户的账户交易数据;判断交易请求是否满足预设的流水生成条件;当确定交易请求满足流水生成条件时,在数据库的流水表中生成热点账户的交易流水;当预设的第一定时任务满足预设的执行条件时,执行第一定时任务,以在流水表中确定热点账户的待处理交易流水,待处理交易流水为热点账户的未入账状态的交易流水;并基于待处理交易流水更新数据库中的业务表的数据,并将待处理交易流水在流水表中所对应的交易流水更新为已入账状态;当预设的第二定时任务满足预设的执行条件时,执行第二定时任务,以基于待处理交易流水更新热点账户在Redis缓存模块的账户余额信息。本发明使用Redis缓存模块保存热点账户的账户交易数据,并使用定时任务基于热点账户的交易流水更新数据库的业务表,根据业务表更新热点账户在Redis缓存模块的数据,将Redis缓存模块和定时任务相结合,将数据缓存后批量处理,由此,可以批量的对热点账户的数据进行处理,减少对热点账户的加锁释锁操作,避免产生性能瓶颈点,提高性能。
除上述的优点之外,本发明在Redis缓存模块中使用两个集合,在账户余额记录集合中不断的记录和更新热点账户出账后的金额,使得热点账户的入账情况不影响热点账户的出账情况,有效避免现有技术中线程1对热点账户进行扣款出现超额,在线程1未进行反向操作对热点账户进行维护,就出现线程2对热点账户进行充值操作导致热点账户中的余额不为负导致热点账户出现记账混乱的情况,并且,本发明出现扣款超额时,可以及时的进行报警,可以避免扣款超额的情况。
本发明应用Redis缓存模块以及定时任务实现热点账户的高并发、高可靠入账。在Redis缓存模块中新建两个数据集合分别用于存储账户变更时间记录和账户变更余额记录。当后台系统接收到账户余额修改交易请求时,即收到热点账户的交易请求时,首先根据交易请求将交易时间戳以及账户号记录到账户变更时间记录集合中,然后根据交易类型为余额增加和余额减少分为两种业务处理逻辑。交易类型为入账时,即为余额增加交易时,则直接在数据库的流水表中生成交易流水,并返回交易成功,此流水表仅为技术处理流程中的临时表,账户号,是否入账,账户余额为这个表中的必输字段,而此时在流水表中生成的交易流水均处于未入账状态。余额减少交易则首先对热点账户在Redis缓存模块里的账户余额进行扣减,判断扣减后的金额是否已经透支,如果透支则直接返回金额不足,如果不透支则同样在流水表中生成交易流水,并返回扣款成功。在流水表中生成交易流水可以避免交易数据丢失。此部分交易处理及返回均在Redis缓存中处理,所以保证了系统的高并发性能。流水表中保存未入账的交易流水,需要设置定时任务将流水表中的未入账的交易流水的数据更新到数据库的业务表中,业务表包括但不限于账户表和流水明细表,并将该交易流水的状态改为已入账状态。需要说明的是,Redis缓存模块中的账户余额信息并不是热点账户的真正账户余额,所以需要设置定时任务去后台数据库查询更新,通过定时任务定时的将从流水表中的数据更新到Redis缓存中。由此即可完成Redis缓存中账户余额的不断更新,避免出现Redis缓存中余额小于零,而实际账户存在未入账流水,导致账户在有余额的情况下扣款失败。
银行或者其他金融业务交易并发量较大的系统很需要一些性能提升方法,目前已经有很多性能提升方法,比如升级硬件资源,最简单粗暴的方法;并发度控制,可以通过控制上游支付系统并发请求数据或者账务系统处理的并发请求数来实现;缓冲入账,将实时同步的记账请求进行异步化,以达到记账实时性和系统稳定性之间平衡的记账手段,这就是“削峰填谷”;影子账户,创建与热点账户对应的多个影子账户,将所述账户的余额分散至各个影子账户。当账务系统接收到账务请求的时候,将原来对一个账户的请求分散到多个影子账户中,分散了账务热点。还有通过汇总明细记账、内存数据库+缓存入账方式,但是这些方法均存在各种各样的缺陷,包括资源开销大,账务处理不安全,客户体验差等问题。本发明的提供的方案查询缓存中存在的未入账流水,根据逻辑及时汇总明细账,避免了汇总明细记账的出现余额更新不及时而导致余额不足扣款以及内存数据库和缓存入账的金额扣款为负回退导致余额记账混乱的情况。在严格保证金融交易数据的安全的同时,该查询指令在Redis缓存中处理,支持高并发处理,拥有较高的效率,可以有效的避免了上述的风险,在保证金融数据绝对安全的基础上,优化了并发性能以及提高客户的体验。
与图1相对应的,本发明实施例还提供一种热点账户的数据处理装置,该装置用于支持图1所示的方法的具体实现,该装置可以配置在银行系统中。
参照图5,为本发明实施例提供的一种热点账户的数据处理装置的结构示意图,具体说明如下所述。
接收单元501,用于接收热点账户的交易请求,并确定所述交易请求的交易类型;
第一生成单元502,用于在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,并在该数据集合中生成所述热点账户的账户交易数据;
判断单元503,用于判断所述交易请求是否满足预设的流水生成条件;
第二生成单元504,用于当确定所述交易请求满足所述流水生成条件时,在数据库的流水表中生成所述热点账户的交易流水;
第一执行单元505,用于当预设的第一定时任务满足预设的执行条件时,执行所述第一定时任务,以在所述流水表中确定所述热点账户的待处理交易流水,所述待处理交易流水为所述热点账户的未入账状态的交易流水;并基于所述待处理交易流水更新所述数据库中的业务表的数据,并将待处理交易流水在所述流水表中所对应的交易流水更新为已入账状态;
第二执行单元506,用于当预设的第二定时任务满足预设的执行条件时,执行所述第二定时任务,以基于所述待处理交易流水更新所述热点账户在所述Redis缓存模块的账户余额信息。
本发明实施例提供的装置中,接收热点账户的交易请求,并确定交易请求的交易类型;在预设的Redis缓存模块中确定与交易类型对应的数据集合,并在该数据集合中生成热点账户的账户交易数据;判断交易请求是否满足预设的流水生成条件;当确定交易请求满足流水生成条件时,在数据库的流水表中生成热点账户的交易流水;当预设的第一定时任务满足预设的执行条件时,执行第一定时任务,以在流水表中确定热点账户的待处理交易流水,待处理交易流水为热点账户的未入账状态的交易流水;并基于待处理交易流水更新数据库中的业务表的数据,并将待处理交易流水在流水表中所对应的交易流水更新为已入账状态;当预设的第二定时任务满足预设的执行条件时,执行第二定时任务,以基于待处理交易流水更新热点账户在Redis缓存模块的账户余额信息。本发明使用Redis缓存模块保存热点账户的账户交易数据,并使用定时任务基于热点账户的交易流水更新数据库的业务表,根据业务表更新热点账户在Redis缓存模块的数据,将Redis缓存模块和定时任务相结合,将数据缓存后批量处理,由此,可以批量的对热点账户的数据进行处理,减少对热点账户的加锁释锁操作,避免产生性能瓶颈点,提高性能。
本发明实施例提供的另一装置中,所述接收单元,包括:
解析子单元,用于对所述交易请求进行解析,获取所述交易请求中的交易标识;
第一确定子单元,用于当所述交易标识为入账标识时,确定所述交易请求的交易类型为入账;
第二确定子单元,用于当所述交易标识为出账标识时,确定所述交易请求的交易类型为出账。
本发明实施例提供的另一装置中,所述第一生成单元执行在预设的Redis缓存模块中确定与所述交易类型对应的数据集合的步骤,包括:
当所述交易请求的交易类型为入账时,将所述Redis缓存模块中的账户变更时间记录集合确定为与所述交易类型对应的数据集合;
当所述交易请求的交易类型为出账时,将所述Redis缓存模块中的账户变更时间记录集合和账户余额记录集合确定为与所述交易类型对应的数据集合。
本发明实施例提供的另一装置中,所述第一生成单元,包括:
第一生成子单元,用于当所述交易请求的交易类型为入账时,在所述账户变更时间记录集合中生成所述热点账户的账户变更记录;
第三确定子单元,用于当所述交易请求的交易类型为出账时,确定所述热点账户在Redis缓存模块的当前账户余额;
运算子单元,用于对所述当前账户余额和所述交易请求中的扣款金额进行减法运算,得到所述热点账户的剩余金额;
第二生成子单元,用于基于所述剩余金额更新所述热点账户在所述账户余额记录集合中的余额信息,并在所述账户变更时间记录集合中生成所述热点账户的账户变更记录。
本发明实施例提供的另一装置中,所述判断单元,包括:
第四确定子单元,用于当所述交易请求的交易类型为入账时,确定所述交易请求满足预设的流水生成条件;
判断子单元,用于当所述交易请求的交易类型为出账时,判断所述热点账户的剩余金额是否大于或等于零;
第五确定子单元,用于当确定所述热点账户的剩余金额大于或等于零时,确定所述交易请求满足所述流水生成条件;
第六确定子单元,用于当确定所述热点账户的剩余金额小于零时,确定所述交易请求不满足流水生成条件。
本发明实施例提供的另一装置中,所述第二执行单元,包括:
第六确定子单元,用于将所述待处理交易流水中属于入账交易的流水确定为目标交易流水;
更新子单元,用于基于所述目标交易流水中的入账金额对所述热点账户在所述Redis缓存模块的账户余额信息进行更新。
本发明实施例提供的另一装置中,还包括:
删除单元,用于确定所述数据集合中的无效数据,并将所述无效数据删除。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述热点账户的数据处理方法。
本发明实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器601,以及一个或者一个以上的指令602,其中一个或者一个以上指令602存储于存储器601中,且经配置以由一个或者一个以上处理器603执行所述一个或者一个以上指令602执行上述热点账户的数据处理方法。
需要说明的是,本发明提供的一种热点账户的数据处理方法及装置、存储介质及电子设备可用于人工智能领域、区块链领域、分布式领域、云计算领域、大数据领域、物联网领域、移动互联领域、网络安全领域、芯片领域、虚拟现实领域、增强现实领域、全息技术领域、量子计算领域、量子通信领域、量子测量领域、数字孪生领域或金融领域。上述仅为示例,并不对本发明提供的一种热点账户的数据处理方法及装置、存储介质及电子设备的应用领域进行限定。
上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种热点账户的数据处理方法,其特征在于,包括:
接收热点账户的交易请求,并确定所述交易请求的交易类型;
在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,并在该数据集合中生成所述热点账户的账户交易数据;
判断所述交易请求是否满足预设的流水生成条件;
当确定所述交易请求满足所述流水生成条件时,在数据库的流水表中生成所述热点账户的交易流水;
当预设的第一定时任务满足预设的执行条件时,执行所述第一定时任务,以在所述流水表中确定所述热点账户的待处理交易流水,所述待处理交易流水为所述热点账户的未入账状态的交易流水;并基于所述待处理交易流水更新所述数据库中的业务表的数据,并将待处理交易流水在所述流水表中所对应的交易流水更新为已入账状态;
当预设的第二定时任务满足预设的执行条件时,执行所述第二定时任务,以基于所述待处理交易流水更新所述热点账户在所述Redis缓存模块的账户余额信息。
2.根据权利要求1所述的方法,其特征在于,所述确定所述交易请求的交易类型,包括:
对所述交易请求进行解析,获取所述交易请求中的交易标识;
当所述交易标识为入账标识时,确定所述交易请求的交易类型为入账;
当所述交易标识为出账标识时,确定所述交易请求的交易类型为出账。
3.根据权利要求2所述的方法,其特征在于,所述在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,包括:
当所述交易请求的交易类型为入账时,将所述Redis缓存模块中的账户变更时间记录集合确定为与所述交易类型对应的数据集合;
当所述交易请求的交易类型为出账时,将所述Redis缓存模块中的账户变更时间记录集合和账户余额记录集合确定为与所述交易类型对应的数据集合。
4.根据权利要求3所述的方法,其特征在于,所述在该数据集合中生成所述热点账户的账户交易数据,包括:
当所述交易请求的交易类型为入账时,在所述账户变更时间记录集合中生成所述热点账户的账户变更记录;
当所述交易请求的交易类型为出账时,确定所述热点账户在Redis缓存模块的当前账户余额;
对所述当前账户余额和所述交易请求中的扣款金额进行减法运算,得到所述热点账户的剩余金额;
基于所述剩余金额更新所述热点账户在所述账户余额记录集合中的余额信息,并在所述账户变更时间记录集合中生成所述热点账户的账户变更记录。
5.根据权利要求4所述的方法,其特征在于,所述判断所述交易请求是否满足预设的流水生成条件,包括:
当所述交易请求的交易类型为入账时,确定所述交易请求满足预设的流水生成条件;
当所述交易请求的交易类型为出账时,判断所述热点账户的剩余金额是否大于或等于零;
当确定所述热点账户的剩余金额大于或等于零时,确定所述交易请求满足所述流水生成条件;
当确定所述热点账户的剩余金额小于零时,确定所述交易请求不满足流水生成条件。
6.根据权利要求1所述的方法,其特征在于,所述基于所述待处理交易流水更新所述热点账户在所述Redis缓存模块的账户余额信息,包括:
将所述待处理交易流水中属于入账交易的流水确定为目标交易流水;
基于所述目标交易流水中的入账金额对所述热点账户在所述Redis缓存模块的账户余额信息进行更新。
7.根据权利要求1所述的方法,其特征在于,还包括:
确定所述数据集合中的无效数据,并将所述无效数据删除。
8.一种热点账户的数据处理装置,其特征在于,包括:
接收单元,用于接收热点账户的交易请求,并确定所述交易请求的交易类型;
第一生成单元,用于在预设的Redis缓存模块中确定与所述交易类型对应的数据集合,并在该数据集合中生成所述热点账户的账户交易数据;
判断单元,用于判断所述交易请求是否满足预设的流水生成条件;
第二生成单元,用于当确定所述交易请求满足所述流水生成条件时,在数据库的流水表中生成所述热点账户的交易流水;
第一执行单元,用于当预设的第一定时任务满足预设的执行条件时,执行所述第一定时任务,以在所述流水表中确定所述热点账户的待处理交易流水,所述待处理交易流水为所述热点账户的未入账状态的交易流水;并基于所述待处理交易流水更新所述数据库中的业务表的数据,并将待处理交易流水在所述流水表中所对应的交易流水更新为已入账状态;
第二执行单元,用于当预设的第二定时任务满足预设的执行条件时,执行所述第二定时任务,以基于所述待处理交易流水更新所述热点账户在所述Redis缓存模块的账户余额信息。
9.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1-7任意一项所述的热点账户的数据处理方法。
10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1-7任意一项所述的热点账户的数据处理方法。
CN202310619578.4A 2023-05-29 2023-05-29 热点账户的数据处理方法及装置、存储介质及电子设备 Pending CN116703388A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310619578.4A CN116703388A (zh) 2023-05-29 2023-05-29 热点账户的数据处理方法及装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310619578.4A CN116703388A (zh) 2023-05-29 2023-05-29 热点账户的数据处理方法及装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116703388A true CN116703388A (zh) 2023-09-05

Family

ID=87844393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310619578.4A Pending CN116703388A (zh) 2023-05-29 2023-05-29 热点账户的数据处理方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116703388A (zh)

Similar Documents

Publication Publication Date Title
US8918506B1 (en) Architecture for a system and method for work and revenue management
US8266126B2 (en) System with multiple conditional commit databases
US8489742B2 (en) System and method for work management
US8538864B2 (en) Providing payment software application as enterprise services
WO2014089602A1 (en) Electronic funds transaction system and method
CN109285069B (zh) 资源转移方法、装置及服务器
CN110060036B (zh) 一种拆分记账方法、账务系统及支付系统
CN112132674A (zh) 一种交易处理方法和装置
CN112184240A (zh) 一种退款请求处理方法和装置
CN111091358A (zh) 多支付渠道的统一处理方法及系统
CN113112348A (zh) 社保数据的处理方法、装置、电子设备和存储介质
CN107147610B (zh) 资源的处理方法及装置
CN111008895A (zh) 一种互联网金融的还款方法、装置、设备及存储介质
CN117541172A (zh) 基于子账户拆分的热点账户并发处理方法、装置及设备
CN116703388A (zh) 热点账户的数据处理方法及装置、存储介质及电子设备
CN115858489A (zh) 基于数据迁移的交易处理方法、装置、计算机设备及介质
CN113112344B (zh) 业务处理方法、设备、存储介质及计算机程序产品
CN111915417B (zh) 纳税金额确定方法、装置和电子设备
CN111429092B (zh) 缴存公积金的方法、装置、设备和计算机可读介质
CN111415263A (zh) 数据匹配方法和装置
CN111179054A (zh) 请求信息处理方法、服务端、客户端和系统
CN113971007B (zh) 信息处理方法、装置、电子设备及介质
CN110827001A (zh) 一种会计事件记账方法、系统、设备和存储介质
KR102513044B1 (ko) 복수 기성금 지분 분리 신탁 방법 및 그 실행을 위한 서버
CN111866171B (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