CN116362889A - 基于缓存索引的产品额度校验方法、装置及计算机设备 - Google Patents
基于缓存索引的产品额度校验方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN116362889A CN116362889A CN202211571053.XA CN202211571053A CN116362889A CN 116362889 A CN116362889 A CN 116362889A CN 202211571053 A CN202211571053 A CN 202211571053A CN 116362889 A CN116362889 A CN 116362889A
- Authority
- CN
- China
- Prior art keywords
- node
- product
- initial
- database
- index
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 title claims description 58
- 230000015654 memory Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
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/06—Asset management; Financial planning or analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Game Theory and Decision Science (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文涉及基于缓存索引的产品额度校验方法、装置及计算机设备。包括:获取用户发起的产品额度需求;获取节点索引;对节点索引中的节点执行第一校验,得到与产品额度需求匹配的唯一初始节点;利用初始节点访问数据库,由数据库对初始节点进行第二校验,判断初始节点是否满足产品额度扣减条件;若满足产品额度扣减条件,确定初始节点为待扣减节点,在数据库中对待扣减节点执行额度扣减;若不满足产品额度扣减条件,从节点索引中选择其他节点,作为新的唯一初始节点,循环判断是否满足产品额度扣减条件;将额度扣减后的节点信息异步更新,循环前述步骤。本方案提高产品销售额度校验及扣减的效率,减少应用对数据库的访问次数,缓解数据库的访问压力。
Description
技术领域
本文涉及计算机领域,尤其是一种基于缓存索引的产品额度校验方法、装置及计算机设备。
背景技术
将产品销售额度存储在数据库中保障数据的可靠性和一致性,在金融行业是较为常见的做法。
目前销售理财产品仅通过数据库进行销售额度查询、校验及额度扣减,均需要访问数据库,数据库执行效率低,数据库访问压力大。同时,理财产品销售额度控制规则较为复杂,多次查询后才能找到目标节点,数据库访问频次高。
针对目前技术存在的数据库执行效率低、访问压力大的问题,需要一种基于缓存索引的产品额度校验方法及装置。
发明内容
为解决上述现有技术的问题,本文实施例提供了一种基于缓存索引的产品额度校验方法、装置、计算机设备。
本文实施例提供了一种基于缓存索引的产品额度校验方法,所述方法包括:获取用户发起的产品额度需求,所述产品额度需求包括产品编码及产品额度需求值;获取Redis返回的满足所述产品额度需求的节点索引,所述节点索引包括至少一个满足所述产品额度需求的节点、节点的剩余额度及所述节点的地址;对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的唯一初始节点;利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件;若满足产品额度扣减条件,确定所述初始节点为待扣减节点,在数据库中对所述待扣减节点执行额度扣减;若不满足产品额度扣减条件,从所述节点索引中选择初始节点以外的其他节点,作为新的唯一初始节点,循环判断所述新的唯一初始节点是否满足所述产品额度扣减条件,若是,在数据库中对所述新的唯一初始节点执行额度扣减;将数据库中的额度扣减后的节点信息异步更新至Redis中,循环前述步骤。
根据本文实施例的一个方面,获取Redis返回的满足所述额度查询需求的节点索引包括:根据所述产品编码,从预先配置的有剩余额度的节点中确定包含所述产品编码的第一节点;从第一节点中选择所述剩余额度值大于或等于所述额度需求值的节点,作为第二节点;根据所述产品编码、所述第二节点的地址、各第二节点的剩余额度值,确定节点索引。
根据本文实施例的一个方面,根据所述产品编码、所述第二节点的地址、各第二节点的剩余额度值,确定节点索引包括:根据所述产品编码、所述第二节点的地址,确定所述节点索引的层级结构;根据所述产品编码、所述第二节点的地址、各第二节点的剩余额度值,确定所述索引的结构中的节点信息。
根据本文实施例的一个方面,所述对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的初始节点包括:从所述节点索引中选择剩余额度与所述产品额度需求的差值超过预设阈值的节点中的任意一个,作为初始节点。
根据本文实施例的一个方面,所述方法还包括:根据节点的产品销售历史数量,从所述节点索引中选择产品销售历史数量低于预设阈值的节点中的任意一个,作为初始节点。
根据本文实施例的一个方面,利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件包括:判断所述初始节点在所述数据库中的剩余额度值是否大于或等于所述产品额度需求值;若是,则确定所述初始节点通过第二校验,满足产品额度扣减条件;若否,则确定所述初始节点未通过第二校验,无法满足产品额度扣减条件。
根据本文实施例的一个方面,所述方法还包括:当在数据库中对待扣减节点执行额度扣减后,更新所述待扣减节点的剩余额度;将更新后的节点信息异步同步至Redis中。
根据本文实施例的一个方面,所述方法还包括:当在数据库中对待扣减节点执行额度扣减后,将所述用户的账户余额、所述用户的产品交易额度存储数据库中。
本文实施例还提供了一种基于缓存索引的产品额度校验装置,所述装置包括:产品额度需求获取单元,用于获取用户发起的产品额度需求,所述产品额度需求包括产品编码及产品额度需求值;节点索引获取单元,用于获取Redis返回的满足所述产品额度需求的节点索引,所述节点索引包括至少一个满足所述产品额度需求的节点、节点的剩余额度及所述节点的地址;超市节点确定单元,用于对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的唯一初始节点;判断单元,用于利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件;额度扣减单元,用于若满足产品额度扣减条件,确定所述初始节点为待扣减节点,在数据库中对所述待扣减节点执行额度扣减;新的唯一初始节点选择单元,用于若不满足产品额度扣减条件,从所述节点索引中选择初始节点以外的其他节点,作为新的唯一初始节点,循环判断所述新的唯一初始节点是否满足所述产品额度扣减条件,若是,在数据库中对所述新的唯一初始节点执行额度扣减;节点信息更新单元,用于将数据库中的额度扣减后的节点信息异步更新至Redis中,循环前述步骤。
本文实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述基于区块链的资金监管方法。
本文实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述基于缓存索引的产品额度校验方法。
本方案在提高复杂的产品销售额度控制规则下、产品销售额度校验及扣减的效率,同时保障数据的可靠性及一致性,并且能有效减少应用对数据库的访问次数,缓解数据库的访问压力,可以提高理财产品销售的并发度,减少每笔交易的响应时间,从而提高系统的每秒交易处理笔数。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本文实施例一种基于缓存索引的产品额度校验方法的流程图;
图2所示为本文实施例一种获取节点索引的方法流程图;
图3所示为本文实施例一种判断初始节点是否满足产品额度扣减条件的方法流程图;
图4所示为本文实施例一种信息同步的方法流程图;
图5所示为本文实施例一种基于缓存索引的产品额度校验装置的结构示意图;
图6所示为本文实施例基于缓存索引的产品额度校验装置的具体结构示意图;
图7所示为本文实施例一种产品额度校验方法的示意图;
图8所示为本文实施例一种计算机设备的结构示意图。
附图符号说明:
501、产品额度需求获取单元;
502、节点索引获取单元;
5021、第一节点确定模块;
5022、第二节点确定模块;
503、初始节点确定单元;
504、判断单元;
505、额度扣减单元;
506、新的唯一初始节点选择单元;
507、节点信息更新单元;
802、计算机设备;
804、处理器;
806、存储器;
808、驱动机构;
810、输入/输出模块;
812、输入设备;
814、输出设备;
816、呈现设备;
818、图形用户接口;
820、网络接口;
822、通信链路;
824、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
需要说明的是,本文的基于缓存索引的产品额度校验方法可用计算机领域,也可用于金融领域,本文对基于缓存索引的产品额度校验方法及装置的应用领域不做限定。
需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的规定。
图1所示为本文实施例一种基于缓存索引的产品额度校验方法的流程图,包括如下步骤:
步骤101,获取用户发起的产品额度需求,所述产品额度需求包括产品编码及产品额度需求值。本步骤中的产品额度需求由用户发起,表示用户想要购买的产品需求。产品编码可以是产品的编号、产品序列号、产品型号等,产品额度需求值为用户想要购买的产品数量或产品额度。在本说明书的一些实施例中,产品额度需求还包括客户交易渠道、客户归属网点等信息。客户交易渠道包括:手机银行、网银等,客户归属网点信息包括用户当前所属哪一个业务网点的信息。
步骤102,获取Redis返回的满足所述产品额度需求的节点索引,所述节点索引包括至少一个满足所述产品额度需求的节点、节点的剩余额度及所述节点的地址。
通过访问Redis,Redis返回符合产品额度需求的节点索引数据。节点索引中包括满足用户需求的所有销售产品的节点,节点索引可以以表格或目录的形式体现。其中,节点表示销售产品的节点,其可以是实体的销售网点、销售柜台、销售门店、销售专柜的抽象表示。本步骤中的节点索引中的所有节点满足用户的产品额度需求,所有节点的剩余额度均大于或等于用户的产品额度需求值。节点索引还包括每一个节点的剩余额度、每个节点的地址。其中,节点的地址为实体的节点存储在Redis中的节点索引中的位置。在本说明书的一些实施例中,当产品额度需求包括客户交易渠道、客户归属网点信息时,通过访问Redis,Redis返回满足用户额度需求中的产品编码需求、产品额度需求、客户交易渠道、客户归属网点信息的所有销售产品的节点,作为节点索引。本步骤在此不作赘述。
步骤103,对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的唯一初始节点。在本步骤中,节点索引中包括至少一个符合用户的产品额度需求的节点。当同时有多个节点满足用户额度需求的时候,需要从多个节点中选择一个节点,作为唯一初始节点。确定唯一初始节点的过程即为执行第一校验的过程。
在本说明书的一些实施例中,从所述节点索引中选择剩余额度与所述产品额度需求的差值超过预设阈值的节点中的任意一个,作为初始节点。若节点的剩余额度与产品额度需求的差值超过预设阈值,可以确定该节点的剩余额度较为充足,且从执行第一校验到后续执行额度扣减的过程中,该节点的剩余额度被其他用户进行扣除后,其仍能满足当前用户的产品额度需求的概率较大,该节点仍有较大可能满足当前用户的产品额度需求。
当前在本说明书的另外一些实施例中,可以根据节点的产品销售历史数量,从所述节点索引中选择产品销售历史数量低于预设阈值的节点中的任意一个,作为初始节点。节点的产品销售历史数量可以反映该节点过去的销售表现。本步骤选择产品销售历史数量低于预设阈值的节点,即选择了过去并不那么热门或受欢迎的节点。这类节点从执行第一校验到后续执行额度扣减的过程中,该节点的剩余额度被其他用户扣除的概率较低、变动较少。因此该节点从第一校验到后续被扣除的过程中,具有更大的可能一次性扣除成功。
在本说明书的另外一些实施例中,还可以查找与用户所处的节点距离最近的节点,作为初始节点。当有多个节点同时满足用户的产品额度需求,根据节点分布的结构或层级,选择与用户目前所处的节点最近的节点作为唯一初始节点。
步骤104,利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件。
在本步骤中,数据库中存储有节点索引中除了初始节点之外的其他所有节点的数据。进一步的,数据库中还可以存储预设的所有节点的数据,不仅限于节点索引中的节点相关的数据。同时,数据库中还包括:所有节点的剩余额度及节点的地址。在本说明书的一些实施例中,根据Redis返回的初始节点的数据,访问数据库。由于此时数据库中的数据与Redis中的数据可能存在时间延迟的问题,数据无法实时同步,因此需要在数据库中对初始节点再进行一次校验,确保初始节点在数据库中仍然满足产品额度扣减条件。
步骤105,若满足产品额度扣减条件,确定所述初始节点为待扣减节点,在数据库中对所述待扣减节点执行额度扣减。对待扣减节点执行额度扣减之后,待扣减节点的额度发生变化。
步骤106,若不满足产品额度扣减条件,从所述节点索引中选择初始节点以外的其他节点,作为新的唯一初始节点,循环判断所述新的唯一初始节点是否满足所述产品额度扣减条件,若是,在数据库中对所述新的唯一初始节点执行额度扣减。当利用初始节点访问数据库时,对初始节点进行第二校验时,初始节点的剩余额度与其在Redis中的剩余额度不一致,具体的,初始节点的剩余额度小于其在Redis中的剩余额度,且小于用户的产品额度需求值,因此,初始节点无法满足用户需求,需要从Redis的节点索引中重新确定节点,作为新的初始节点,该新的初始节点也是唯一初始节点。利用该新的唯一初始节点重新访问数据库,由数据库对其进行第二校验,判断该新的唯一初始节点是否满足额度扣减条件。若满足额度扣减条件,则对新的唯一初始节点进行额度扣减。
步骤107,将数据库中的额度扣减后的节点信息异步更新至Redis中。当在数据库中执行完对初始节点的额度扣减之后,初始节点的剩余额度发生变化。将初始节点的剩余额度信息及其他节点信息,通过异步消息服务异步同步到Redis中,保证额度查询的准确性。
图2所示为本文实施例一种获取节点索引的方法流程图,包括如下步骤:
步骤201,根据所述产品编码,从预先配置的有剩余额度的节点中确定包含所述产品编码的第一节点。在本说明书的一些实施例中,确定节点中是否包含所需的产品编码,可以确定节点是否有满足用户需求的产品。在本步骤中,预先配置的有剩余额度的节点是由管理人员根据业务规则或管理制度预先设定的。例如,对某地区的多个节点配置一部分额度,对另一地区的多个节点配置另一部分额度,对总部的节点配置其他额度。当发生实际交易时,不同的节点的额度将根据实际交易情况发生变化,若发生额度扣减,则节点的当前额度可以称之为剩余额度。
本步骤首先从预先配置的有剩余额度的节点中确定具有用户所需求的产品的节点。例如,预先配置的10个节点中符合额度查询需求的节点由8个,这8个节点中包含产品编码的节点有5个。则从预先配置的10个节点中确定有5个第一节点。
步骤202,从第一节点中选择所述剩余额度值大于或等于所述额度需求值的节点,作为第二节点。在本步骤中,进一步从第一节点中选择剩余额度值大于或等于用户的额度需求值的节点。在本说明书的一些实施例中,只有当节点的剩余额度值大于或等于额度需求值,才能向用户提供对应需求的产品,满足用户消费需求。例如,步骤201中确定的5个第一节点的剩余额度值分别为1万、2万、1万5、10万、5万,而用户的额度需求值为2万5,则可以确定其中有3个节点的剩余额度值不满足额度需求,其中有2个节点满足额度需求值,可以作为第二节点。
步骤203,根据所述产品编码、所述第二节点的地址、各第二节点的剩余额度值,确定节点索引。根据步骤201、步骤202确定的符合产品额度需求的第二节点、第二节点在Redis中的地址、每一个第二节点的剩余额度值、产品编码确定节点索引。在本说明书的一些实施例中,节点索引为一个提供待查询节点的地址信息、内容信息的表。节点索引可以包括不同的层级结构。
在本说明书的一种实施例中,根据所述产品编码、所述第二节点的地址,确定所述节点索引的层级结构。根据所述产品编码、所述第二节点的地址及各第二节点的剩余额度值,确定所述索引的结构中的节点信息。
本说明书中,节点索引包括两个层级结构,分别为层级一和层级二。其中,层级一、二中的信息由键值对的形式体现。其中,层级一中的数据形式如下:key:String产品编码,value:List产品额度节点;表示所有剩余额度、产品符合用户产品额度需求的节点及节点地址信息;层级二中的数据形式如下:key:String产品编码+产品额度节点,value:Hash额度信息,该层级表示层级一中的节点的具体节点信息。
图3所示为本文实施例一种判断初始节点是否满足产品额度扣减条件的方法流程图,包括如下步骤:
步骤301,判断所述初始节点在所述数据库中的剩余额度值是否大于或等于所述产品额度需求值。
步骤302,若是,则确定所述初始节点通过第二校验,满足产品额度扣减条件。例如,产品额度需求值为10个,初始节点在数据库中的剩余额度值为11个,则初始节点在数据库中的剩余额度值大于产品额度需求值,可以满足用户的额度需求,满足产品额度扣减条件。
步骤303,若否,则确定所述初始节点未通过第二校验,无法满足产品额度扣减条件。例如,产品额度需求值为5个,初始节点在数据库中的剩余额度值为2个,则初始节点在数据库中的剩余额度值小于产品额度需求值,则初始节点无法满足用户的额度需求。
在本说明书的一些实施例中,在数据库中对初始节点执行第二校验、额度扣减的动作与交易的主事务相互独立,可以减少数据库锁占用时间。
图4所示为本文实施例一种信息同步的方法流程图,具体包括如下步骤:
步骤401,当在数据库中对待扣减节点执行额度扣减后,更新所述待扣减节点的剩余额度。本步骤将数据库中的数据的变更信息发送至异步服务。在本说明书的一些实施例中,当多笔交易同时进行,每一笔交易对各自对应的初始节点进行额度扣除。因此,数据库中可以同时对多个待扣减节点执行额度扣减。相对应的,数据库中可以同时记录多个正在执行额度扣减的节点的剩余额度信息。
步骤402,将更新后的节点信息异步同步至Redis中。本步骤中,异步服务以异步发送的方式将数据库中额度数据的变化情况同步更新到Redis中。
在本说明书的另外一些实施例中,数据库还可以记录用户账户余额扣减信息、客户交易份额等信息,并保存在数据库中。另外,当数据库中额度已扣减并已提交,如果后续操作出现异常,可以对额度进行退回。
如图5所示为本文实施例一种基于缓存索引的产品额度校验装置的结构示意图,在本图中描述了基于缓存索引的产品额度校验装置的基本结构,其中的功能单元、模块可以采用软件方式实现,也可以采用通用芯片或者特定芯片实现,实现产品额度校验,该装置具体包括:
产品额度需求获取单元501,用于获取用户发起的产品额度需求,所述产品额度需求包括产品编码及产品额度需求值;
节点索引获取单元502,用于获取Redis返回的满足所述产品额度需求的节点索引,所述节点索引包括至少一个满足所述产品额度需求的节点、节点的剩余额度及所述节点的地址;
初始节点确定单元503,用于对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的唯一初始节点;
判断单元504,用于利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件;
额度扣减单元505,用于若满足产品额度扣减条件,确定所述初始节点为待扣减节点,在数据库中对所述待扣减节点执行额度扣减;
新的唯一初始节点选择单元506,用于若不满足产品额度扣减条件,从所述节点索引中选择初始节点以外的其他节点,作为新的唯一初始节点,循环判断所述新的唯一初始节点是否满足所述产品额度扣减条件,若是,在数据库中对所述新的唯一初始节点执行额度扣减;
节点信息更新单元507,用于将数据库中的额度扣减后的节点信息异步更新至Redis中,循环前述步骤。
本方案旨在提高复杂的产品销售额度控制规则下,产品销售额度校验及扣减的效率,同时保障数据的可靠性及一致性,并且能有效减少应用对数据库的访问次数,缓解数据库的访问压力;可以提高理财产品销售的并发度,减少每笔交易的响应时间,从而提高系统的每秒交易处理笔数。
作为本文的一个实施例,还可以参考如图6所示为本实施例基于缓存索引的产品额度校验装置的具体结构示意图。
作为本文的一个实施例,所述节点索引获取单元502进一步包括:第一节点确定模块5021,用于根据所述产品编码,从预先配置的有剩余额度的节点中确定包含所述产品编码的第一节点;
第二节点确定模块5022,用于从第一节点中选择所述剩余额度值大于或等于所述额度需求值的节点,作为第二节点。
图7所示为本文实施例一种产品额度校验方法的示意图。首先,对客户产品需求进行准入检验,当通过准入校验,进入主流程。根据用户的产品额度需求,Redis进行额度预判,返回额度的节点索引。当从节点索引中确定初始节点后,在数据库(DB,database)中对初始节点进行额度校验及额度扣减。随后将数据库中初始节点的额度变更信息通过异步任务发送至Redis。进一步的,还包括将用户的购买份额、用户账户月信息登记保存到数据库中。如果后续操作出现异常,可以对额度进行退回。
如图8所示,为本文实施例提供的一种计算机设备,本文实施例所述的装置可以为本实施例中的计算机设备,执行本文上述的方法,所述计算机设备802可以包括一个或多个处理器804,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备802还可以包括任何存储器806,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器806可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备802的固定或可移除部件。在一种情况下,当处理器804执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备802可以执行相关联指令的任一操作。计算机设备802还包括用于与任何存储器交互的一个或多个驱动机构808,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备802还可以包括输入/输出模块810(I/O),其用于接收各种输入(经由输入设备812)和用于提供各种输出(经由输出设备814)。一个具体输出机构可以包括呈现设备816和相关联的图形用户接口(GUI)818。在其他实施例中,还可以不包括输入/输出模块810(I/O)、输入设备812以及输出设备814,仅作为网络中的一台计算机设备。计算机设备802还可以包括一个或多个网络接口820,其用于经由一个或多个通信链路822与其他设备交换数据。一个或多个通信总线824将上文所描述的部件耦合在一起。
通信链路822可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路822可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
对应于图1至图4中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图1至图4所示的方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
Claims (11)
1.一种基于缓存索引的产品额度校验方法,其特征在于,所述方法包括:
获取用户发起的产品额度需求,所述产品额度需求包括产品编码及产品额度需求值;
获取Redis返回的满足所述产品额度需求的节点索引,所述节点索引包括至少一个满足所述产品额度需求的节点、节点的剩余额度及所述节点的地址;
对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的唯一初始节点;
利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件;
若满足产品额度扣减条件,确定所述初始节点为待扣减节点,在数据库中对所述待扣减节点执行额度扣减;
若不满足产品额度扣减条件,从所述节点索引中选择初始节点以外的其他节点,作为新的唯一初始节点,循环判断所述新的唯一初始节点是否满足所述产品额度扣减条件,若是,在数据库中对所述新的唯一初始节点执行额度扣减;
将数据库中的额度扣减后的节点信息异步更新至Redis中。
2.根据权利要求1所述的基于缓存索引的产品额度校验方法,其特征在于,获取Redis返回的满足所述产品额度需求的节点索引包括:
根据所述产品编码,从预先配置的有剩余额度的节点中确定包含所述产品编码的第一节点;
从第一节点中选择所述剩余额度值大于或等于所述额度需求值的节点,作为第二节点;
根据所述产品编码、所述第二节点的地址、各第二节点的剩余额度值,确定节点索引。
3.根据权利要求2所述的基于缓存索引的产品额度校验方法,其特征在于,根据所述产品编码、所述第二节点的地址、各第二节点的剩余额度值,确定节点索引包括:
根据所述产品编码、所述第二节点的地址,确定所述节点索引的层级结构;
根据所述产品编码、所述第二节点的地址及各第二节点的剩余额度值,确定所述索引的结构中的节点信息。
4.根据权利要求1所述的基于缓存索引的产品额度校验方法,其特征在于,所述对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的初始节点包括:
从所述节点索引中选择剩余额度与所述产品额度需求的差值超过预设阈值的节点中的任意一个,作为初始节点。
5.根据权利要求4所述的基于缓存索引的产品额度校验方法,其特征在于,所述方法还包括:
根据节点的产品销售历史数量,从所述节点索引中选择产品销售历史数量低于预设阈值的节点中的任意一个,作为初始节点。
6.根据权利要求5所述的基于缓存索引的产品额度校验方法,其特征在于,利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件包括:
判断所述初始节点在所述数据库中的剩余额度值是否大于或等于所述产品额度需求值;
若是,则确定所述初始节点通过第二校验,满足产品额度扣减条件;
若否,则确定所述初始节点未通过第二校验,无法满足产品额度扣减条件。
7.根据权利要求6所述的基于缓存索引的产品额度校验方法,其特征在于,所述方法还包括:
当在数据库中对待扣减节点执行额度扣减后,更新所述待扣减节点的剩余额度;
将更新后的节点信息异步同步至Redis中。
8.根据权利要求7所述的基于缓存索引的产品额度校验方法,其特征在于,所述方法还包括:
当在数据库中对待扣减节点执行额度扣减后,将所述用户的账户余额、所述用户的产品交易额度存储数据库中。
9.一种基于缓存索引的产品额度校验装置,其特征在于,所述装置包括:
产品额度需求获取单元,用于获取用户发起的产品额度需求,所述产品额度需求包括产品编码及产品额度需求值;
节点索引获取单元,用于获取Redis返回的满足所述产品额度需求的节点索引,所述节点索引包括至少一个满足所述产品额度需求的节点、节点的剩余额度及所述节点的地址;
超市节点确定单元,用于对所述节点索引中的至少一个节点执行第一校验,得到与所述产品额度需求匹配的唯一初始节点;
判断单元,用于利用所述初始节点访问数据库,由数据库对所述初始节点进行第二校验,判断所述初始节点是否满足产品额度扣减条件;
额度扣减单元,用于若满足产品额度扣减条件,确定所述初始节点为待扣减节点,在数据库中对所述待扣减节点执行额度扣减;
新的唯一初始节点选择单元,用于若不满足产品额度扣减条件,从所述节点索引中选择初始节点以外的其他节点,作为新的唯一初始节点,循环判断所述新的唯一初始节点是否满足所述产品额度扣减条件,若是,在数据库中对所述新的唯一初始节点执行额度扣减;
节点信息更新单元,用于将数据库中的额度扣减后的节点信息异步更新至Redis中。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任意一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211571053.XA CN116362889A (zh) | 2022-12-08 | 2022-12-08 | 基于缓存索引的产品额度校验方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211571053.XA CN116362889A (zh) | 2022-12-08 | 2022-12-08 | 基于缓存索引的产品额度校验方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116362889A true CN116362889A (zh) | 2023-06-30 |
Family
ID=86938399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211571053.XA Pending CN116362889A (zh) | 2022-12-08 | 2022-12-08 | 基于缓存索引的产品额度校验方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116362889A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117850730A (zh) * | 2024-03-08 | 2024-04-09 | 青岛罗博数码科技有限公司 | 一种智能笔盒显示图片的方法与系统 |
-
2022
- 2022-12-08 CN CN202211571053.XA patent/CN116362889A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117850730A (zh) * | 2024-03-08 | 2024-04-09 | 青岛罗博数码科技有限公司 | 一种智能笔盒显示图片的方法与系统 |
CN117850730B (zh) * | 2024-03-08 | 2024-05-28 | 青岛罗博数码科技有限公司 | 一种智能笔盒显示图片的方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200051043A1 (en) | Splittable security token | |
CN103748579B (zh) | 在映射化简框架中处理数据 | |
CN100375038C (zh) | 重定序两阶段提交中的资源的最后代理优化方法和系统 | |
US10831737B2 (en) | Method and device for partitioning association table in distributed database | |
CN109951541A (zh) | 一种流水号生成方法及服务器 | |
CN109558453B (zh) | 一种区块链数据网络化存储和移存的方法 | |
CN110852559A (zh) | 资源的分配方法和装置、存储介质、电子装置 | |
CN116362889A (zh) | 基于缓存索引的产品额度校验方法、装置及计算机设备 | |
CN104537563B (zh) | 一种额度数据处理方法及服务器 | |
CN115712670A (zh) | 一种数据源管理系统 | |
CN109446225A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN111639967A (zh) | 产品潜在客户挖掘方法及系统 | |
CN112988812B (zh) | 库存数据的处理方法、装置、设备及存储介质 | |
CN110737432A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN112882956A (zh) | 一种通过数据组合计算自动生成全场景自动化测试案例的方法、装置、存储介质及电子设备 | |
US11556554B2 (en) | Distributed transaction management method and system | |
US11140094B2 (en) | Resource stabilization in a distributed network | |
WO2022251238A1 (en) | Systems and methods for ensuring quality of search system data | |
CN114840183A (zh) | 一种基于用户行为的微前端调整方法及装置 | |
CN109783559A (zh) | 房产交易数据的获取方法、装置、电子设备以及存储介质 | |
CN110837365A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN108961039A (zh) | 交易处理方法、装置及系统 | |
CN112131258B (zh) | 数据拼接方法、装置、设备及计算机存储介质 | |
CN113055401B (zh) | 一种企业业务的授权处理方法及装置 | |
US20070088700A1 (en) | Sending keys that identify changes to clients |
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 |