CN103886079B - 一种数据处理方法和系统 - Google Patents
一种数据处理方法和系统 Download PDFInfo
- Publication number
- CN103886079B CN103886079B CN201410115278.3A CN201410115278A CN103886079B CN 103886079 B CN103886079 B CN 103886079B CN 201410115278 A CN201410115278 A CN 201410115278A CN 103886079 B CN103886079 B CN 103886079B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- pending
- message
- list
- 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
Classifications
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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/23—Updating
- G06F16/2308—Concurrency control
-
- 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
- G06Q30/00—Commerce
- G06Q30/01—Customer relationship services
- G06Q30/015—Providing customer assistance, e.g. assisting a customer within a business location or via helpdesk
- G06Q30/016—After-sales
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法和系统,包括:数据写入阶段:接收客户端发送来的数据信息;将所述数据信息持久化到数据库;将所述数据信息中的待处理数据写入Redis缓存;数据处理阶段:从所述Redis缓存获取所述待处理数据并进行处理,将处理后的结果数据发送到消息队列;从所述消息队列中获取所述结果数据,并将其持久化到所述数据库。本发明采用Redis缓存保存待处理数据,实现了Redis缓存中的待处理数据的并发抢占和处理,处理后的结果数据通过消息队列实现了串行化的方式持久化到数据库中。本发明增强了数据的并发性处理,给客户带来良好的体验,避免了高并发情况下给数据库带来的瓶颈问题,避免数据库死锁的问题,确保了数据的一致性和完整性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种高并发性能的数据处理方法和系统。
背景技术
售后服务是商业行为中非常重要的环节。无论是传统零售商,还是电商企业,都必须建立一套完善的售后服务体系,才能保障销售产品的品质和客户的合法权益,并且售后服务质量的好坏还直接影响到客户的购物体验。
对于电商企业来讲,客户在电商网站购买商品,收货后如果发现存在质量、错误购买等问题,可以直接在该电商网站提交相关的售后服务申请,售后服务申请数据通过网络发送到该电商的售后服务系统中。电商网站的售后服务专员直接在售后服务系统中审核并处理该售后服务申请数据。
在目前的电商企业中,由于售后服务专员的考核指标主要通过工作量进行衡量,进而为了能够提高其自身的考核指标,售后服务专员会在售后服务系统中争抢售后服务申请数据进行审核和处理。在售后服务系统中,售后服务申请数据的领取属于一种抢占模式(类似12306网站的抢票模式),这就要求售后服务系统的领取环节必须支持高并发处理。
在现有技术中,对于OLTP(On-Line Transaction Processing,联机事务处理系统,也称为面向交易的处理系统)类应用系统,通常都采用全流程实时数据库交互的模式进行数据处理,如图1所示,其交互过程包括如下步骤:
第1步、客户端向Web服务端发起请求,例如售后服务申请单领取请求;
第2步、Web服务端接收到客户端发起的请求,并和数据库建立连接,向数据库发起数据库更新事务请求;
第3步、数据库接收到数据库更新事务请求后,执行事务内的更新动作以更新对应的数据记录,比如售后服务申请单的领取状态、领取数量等,更新成功之后事务结束,同时返回给Web服务端事务执行成功标识;
第4步、Web服务端接收到数据库返回的事务成功标识后,将数据处理结果返回给客户端,比如售后服务申请单最终领取成功数量等信息;
第5步、客户端接收到服务端返回的信息后提示用户领取成功信息。
现有技术中所采用的上述全流程实时数据库交互模式的缺陷表现在如下几个方面:
1)因为全流程实时和数据库交互,进而对数据库形成强依赖。数据库的事务并发性能(TPS)有限,因此可导致OLTP类应用系统的并发性能存在瓶颈风险。而实践也表明无论如何进行查询SQL(Structured Query Language,结构化查询语言)、数据库配置等优化,都很难满足上述抢占式应用场景的高并发需求;
2)在高并发的应用场景下,现有技术方案容易发生数据库死锁,如果死锁处理不好的话容易导致数据库崩溃,进而导致系统无法使用等严重后果;
3)并发性能差,用户体验不好,往往在客户端发起领取请求后,要数秒之后才能返回结果。
发明内容
有鉴于此,本发明提供一种高并发数据处理方法和系统,以适用于解决系统中类似抢占模式的高并发应用。
本发明的技术方案是这样实现的:
一种数据处理方法,包括数据写入阶段和数据处理阶段,其中:
所述数据写入阶段包括:
接收客户端发送来的数据信息;
创建数据库连接,并开启数据库事务,将所述数据信息持久化到数据库;
将所述数据信息中的待处理数据写入Redis缓存,之后提交数据库事务;
所述数据处理阶段包括:
从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;
监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库;
删除所述Redis缓存中的所述待处理数据。
进一步,在所述数据写入阶段中:
若所述数据信息持久化到数据库失败,则回滚所述数据库事务,并断开所述数据库连接。
进一步,在所述数据处理阶段中:
若所述结果数据持久化到所述数据库失败,则回滚所述数据库事务,且不删除所述Redis缓存中的所述待处理数据。
进一步,所述Redis缓存中具有存储队列List,以及与所述List对应的已完成队列Complete List;
在所述数据写入阶段中:
将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List中;
在所述数据处理阶段中:
从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中。
进一步,从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中的过程中,采用setnx原子操作对所述待处理数据进行加锁处理。
进一步,在所述数据写入阶段中,所述将所述数据信息持久化到数据库与所述将所述数据信息中的待处理数据写入Redis缓存,在同一个事务边界中完成。
进一步,所述数据信息为售后服务申请单数据。
一种数据处理系统,包括:
数据库,用于进行所述数据信息和处理后的结果数据的存储;
Redis缓存,用于保存所述数据信息中的待处理数据;
第一服务模块,用于接收客户端发送来的数据信息,创建数据库连接,并开启数据库事务,将所述数据信息持久化到所述数据库,将所述数据信息中的待处理数据写入所述Redis缓存,之后提交数据库事务;
数据处理模块,用于从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;
第二服务模块,用于监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库,之后删除所述Redis缓存中的所述待处理数据。
进一步,所述Redis缓存中具有存储队列List,以及与所述List对应的已完成队列Complete List;
所述第一服务模块将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List中;
所述数据处理模块从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中。
进一步,所述数据信息为售后服务申请单数据。
从上述方案可以看出,本发明的数据处理方法和系统,采用Redis缓存保存数据信息中的待处理数据,利用Redis缓存对高并发访问的良好支持,实现了Redis缓存中的待处理数据的并发抢占和处理,将处理后的结果数据发送到消息队列,并通过消息队列以串行化的方式持久化到数据库中,在保证数据一致性和完整性的情况下实现了结果数据在数据库中的存储。对于整个的数据处理过程来说,一方面增强了数据的并发性处理,能够较快的完成数据的处理,不需要客户较长时间的等待,给客户带来良好的体验,另一方面,也避免了高并发情况下给数据库带来的瓶颈问题,避免数据库死锁的问题,也确保了数据的一致性和完整性。
附图说明
图1为现有的全流程实时数据库交互模式进行数据处理的示意图;
图2为本发明的数据处理方法的流程示意图;
图3为本发明的数据处理方法的实施例意图;
图4为本发明中Redis缓存中的数据存储结构示意图;
图5为本发明的数据处理系统的实施例结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
如图2所示,本发明提供的数据处理方法包括数据写入阶段和数据处理阶段,其中:
所述数据写入阶段包括:
步骤1、接收客户端发送来的数据信息;
步骤2、创建数据库连接,并开启数据库事务,将所述数据信息持久化到数据库;
步骤3、将所述数据信息中的待处理数据写入Redis缓存,之后提交数据库事务;
所述数据处理阶段包括:
步骤4、从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列(MQ);
步骤5、监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库;
步骤6、删除所述Redis缓存中的所述待处理数据。
在所述数据写入阶段中,若步骤2中所述数据信息持久化到数据库失败,则回滚所述数据库事务,并断开所述数据库连接。此处的数据库回滚指的是该处整个数据持久化事务回滚,回滚的事务不会有任何数据持久化到数据库。
在所述数据写入阶段中,步骤2的将所述数据信息持久化到数据库与步骤3的将所述数据信息中的待处理数据写入Redis缓存,是在同一个事务边界中完成的,进而保证存储到数据库中和存储到Redis缓存中的数据保持一致。
在所述数据处理阶段中,若步骤5中所述结果数据持久化到所述数据库失败,则回滚所述数据库事务,且不删除所述Redis缓存中的所述待处理数据。
本发明中,所采用的Redis是一个key-value存储系统,支持多种存储类型,其中包括List(存储队列)类型,并且支持多种操作,例如push/pop、add/remove以及取交集并集和差集等,这些操作都是原子性的。并且,在此基础上,redis支持了各种不同方式的排序。Redis的数据都是缓存在内存中的。关于Redis,为本领域已有技术,不在此赘述。
本发明所述方法的实施例中,Redis缓存中具有至少1个List(存储队列),以及与所述List对应的Complete List(已完成队列)。步骤2中,将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List中;步骤4中,从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中。从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中的过程中,采用setnx原子操作对所述待处理数据进行加锁处理,进而保证高并发下的线程安全。
本发明公开的数据处理方法,适用于高并发的数据处理,例如抢占模式的售后服务申请数据的处理,进而作为一个具体实施例,本发明的上述数据处理方法中,所述待处理数据为售后服务申请单数据。
以下以电商的网上售后服务申请单的数据处理过程为例,并结合图3对本发明的数据处理方法进行具体说明,该实施例包括以下过程。
步骤a、电商接收客户端发送来的售后服务申请单数据,之后执行步骤b。
在本步骤a之前,客户从电商购买所需要的商品,当发现其所购买的商品出现质量问题或者需要相关的售后服务时,通过客户端向电商发送售后服务申请单,以申请相应的售后服务。其中,客户端例如客户电脑,或者客户电脑中所安装的相应软件,或者客户电脑所登录的电商网页,或者客户移动终端所安装的相应软件,或者客户移动终端所登陆的点上网页等。
步骤b、创建数据库连接,并开启数据库事务,将售后服务申请单数据持久化到数据库,之后执行步骤c。
其中,数据库为事先已经创建好的数据库,该数据库用于存储售后服务申请单数据以及与所述售后服务申请单数据相对应的经过电商客服处理后的售后服务数据等。本步骤b中,将售后服务申请单数据持久化到数据库中,目的是为了在电商网站完成服务申请单数据的存储。
步骤c、判断将售后服务申请单数据持久化到数据库是否成功,如果成功则执行步骤d,否则执行步骤e。
在网站运营的过程中,可能因为所存在的各种问题,例如传输数据丢失,而造成的数据持久化失败的可能,设置本步骤c的目的是当出现失败的情况时,能够进行相应的处理,以防止无法完成售后服务申请单的处理的可能。
步骤d、将所述售后服务申请单数据中的待处理数据写入Redis缓存,之后提交数据库事务,之后执行步骤f。
本步骤d中,售后服务申请单数据中的待处理数据是指,进行该售后服务申请的相应处理是所需要用到的数据。对于售后服务申请单来说,其中包含了大量的信息,这些信息在数据库中的存储例如分为多个字段进行存储,字段内容例如相关的商品信息、提交日期信息、客户在申请单中填写的描述信息、用于标识售后服务申请的处理进展的信息等。在电商客服针对该售后服务申请进行相应的处理时,并不需要该售后服务申请单数据中的所有信息,仅需要其中一部分信息即可完成相应的售后服务流程,因此不必要将所有的售后服务申请单数据全部写入Redis缓存,进而节省了售后服务申请单数据所占用的Redis缓存空间,能够使Redis缓存同时存储更多的其他售后服务申请单的相关数据。
步骤d中,在所述的提交数据库事务中的事务是指数据写入的事务,本领域中,凡是持久化到数据库的业务逻辑都需要依赖于数据库自身的事务来确保数据的一致性和完整性,数据写入事务提交之后,客户端所提交的数据才真正的持久化到了数据库中。
这里需要强调的是,步骤b到步骤d的过程中,将售后服务申请单数据持久化到数据库以及将所述售后服务申请单数据中的待处理数据写入Redis缓存,这两个过程是在同一个事务边界中完成的,进而确保了数据库和Redis缓存中的数据的一致性。
步骤e、回滚所述数据库事务,并断开所述数据库连接,并向客户端发出售后服务申请单数据存储失败提示信息。
经过本步骤e,可使得数据库返回到其创建连接之前的状态,防止售后服务申请单数据持久化到数据库失败而可能对数据库存储信息造成的破坏。向客户端发出售后服务申请单数据存储失败提示信息,能够使得客户得知其售后服务申请单上传失败,以重新进行上传。
这里需要注意的是数据的写入顺序非常关键,必须先确保售后服务申请单数据持久化到数据库成功,然后再将待处理数据写入到Redis缓存,这样才能保证数据库和Redis缓存中数据的一致性。如果顺序反过来,就可能出现Redis缓存写成功,但持久化过程中出现异常导致数据库事务回滚的问题,这样的结果就是数据库中没有该售后服务申请单数据,而Redis缓存中已经存有该售后服务申请单的待处理数据了,因为Redis缓存不会和数据库事务一起回滚。
经过上述步骤a至步骤e的过程,便完成了售后服务申请单数据的写入。
步骤f、从Redis缓存获取待处理数据,并对待处理数据进行处理,将处理后的结果数据发送到消息队列(MQ),之后执行步骤g。
本步骤f主要通过电商的售后服务专员来完成,售后服务专员通过电商网站的售后服务系统获取Redis缓存中的待处理数据,并对待处理数据进行审核和处理。当大量的售后服务申请单数据经过步骤a至步骤e进入电商网站的数据库和Redis缓存中后,售后服务专员仅获取Redis缓存中的待处理数据,不从数据库中争抢售后服务申请单数据,可避免由于数据库并发性能有限的瓶颈;另外,Redis缓存的读取/写入速度要比数据库的读取/写入速度快得多,在同时处理大量售后服务申请单数据的情况下,因为仅从Redis缓存中争抢售后服务申请单数据,与传统的仅从数据库进行抢单相比,本发明的方法也极大的加快了读取/写入速度;同时,由于是从Redis缓存获取待处理数据,所以本发明的方法不易发生数据库死锁。
本发明实施例中,如图4所示,待处理数据在Redis缓存中采用List(存储队列)进行存储,List支持排序,并且支持单独操作List中的某个具体数据;在Redis缓存中,与List对应,还具有Complete List(已完成队列)。在步骤d中,将待处理数据写入Redis缓存时,根据具体的应用逻辑(服务单领取时需要处理的逻辑,例如更新服务单状态等)定义不同的List,并将待处理数据写入到对应的List中。在步骤f中,从Redis缓存获取待处理数据(data),并对待处理数据进行处理时,是直接从Redis缓存中对应的List中Get(获取)对应的Value(值),在内存中进行逻辑处理后将该Value转移到对应的Complete List中,这样可以避免在高并发下的重复处理。上述中,应用逻辑指的是具体的业务逻辑,可以根据不同的业务逻辑定义不同的数据结构,比如在售后服务单的实施例中,因为售后服务单信息写入到数据库中之后,处理数据的业务逻辑是服务单领取,服务单领取业务要求先进先出,需要按照时间顺序领取,进而需采用队列(List)形式。关于Redis缓存以及其中的List以及相关操作等内容为已公开技术,本领域技术人员可通过相关技术文档获得,此处不再赘述。
此外,从Redis缓存中获取待处理数据并将对应数据移动到Complete List的整个处理过程,利用Redis中的setnx原子操作加锁,进而保证高并发下的线程安全。
步骤g、监听消息队列,并从消息队列中获取结果数据,并将所接收的结果数据持久化到所述数据库,之后执行步骤h。
本发明中,所述消息队列为基于JMS(Java消息服务)的消息总线,进行异步处理的一种实现方式。本发明中,经过步骤f将处理后的结果数据发送到消息队列,在步骤g中,利用消息队列,实现了数据库更新的异步操作,使得Redis缓存中高并发情况下进行数据处理获得的结果数据,能够以串行化的方式持久化到数据库中,一方面确保了数据的一致性和完整性,另一方面避免了数据库死锁的问题,也可回避数据库并发性能差,用户体验不好的问题。
步骤h、判断结果数据持久化到所述数据库是否成功,如果成功则执行步骤i,否则执行j。
步骤i、删除所述Redis缓存中的所述待处理数据。
步骤j、回滚所述数据库事务,且不删除所述Redis缓存中的所述待处理数据。
从上述过程可以看出,本发明实施例利用Redis缓存保存售后服务申请单数据中的待处理数据,利用Redis缓存对高并发访问的良好支持,实现Redis缓存中的待处理数据的并发抢占和处理,之后将处理后的结果数据发送到消息队列,并通过消息队列以串行化的方式持久化到数据库中,在保证数据一致性和完整性的情况下实现了结果数据在数据库中的存储。在整个的数据处理过程来说,一方面增强了数据的并发性处理,能够较快的完成数据的处理,不需要客户较长时间的等待,给客户带来良好的体验,另一方面,也避免了高并发情况下给数据库带来的瓶颈问题,避免数据库死锁的问题,也确保了数据的一致性和完整性。
基于上述数据处理方法,本发明同时提供了一种数据处理系统,如图5所示,其包括,数据库1、Redis缓存2、第一服务模块3、数据处理模块4和第二服务模块5。其中,数据库1,用于进行所述数据信息和处理后的结果数据的存储。Redis缓存2,用于保存所述数据信息中的待处理数据。第一服务模块3,用于接收客户端发送来的数据信息,创建数据库连接,并开启数据库事务,将所述数据信息持久化到所述数据库1,将所述数据信息中的待处理数据写入所述Redis缓存2,之后提交数据库事务。数据处理模块4,用于从所述Redis缓存2获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列。第二服务模块5,用于监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库1,之后删除所述Redis缓存2中的所述待处理数据。
本发明提供的上述数据处理方法和系统,采用Redis缓存保存数据信息中的待处理数据,利用Redis缓存对高并发访问的良好支持,实现了Redis缓存中的待处理数据的并发抢占和处理,将处理后的结果数据发送到消息队列,并通过消息队列以串行化的方式持久化到数据库中,在保证数据一致性和完整性的情况下实现了结果数据在数据库中的存储。对于整个的数据处理过程来说,一方面增强了数据的并发性处理,能够较快的完成数据的处理,不需要客户较长时间的等待,给客户带来良好的体验,另一方面,也避免了高并发情况下给数据库带来的瓶颈问题,避免数据库死锁的问题,也确保了数据的一致性和完整性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种数据处理方法,包括数据写入阶段和数据处理阶段,其中:
所述数据写入阶段包括:
接收客户端发送来的数据信息;
创建数据库连接,并开启数据库事务,将所述数据信息持久化到数据库;
将所述数据信息中的待处理数据写入Redis缓存,之后提交数据库事务;
所述数据处理阶段包括:
从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;
监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库;
删除所述Redis缓存中的所述待处理数据;
其中,所述数据信息为售后服务申请单数据;
所述数据信息中的待处理数据,为进行该售后服务申请的相应处理时所需要用到的数据。
2.根据权利要求1所述的数据处理方法,其特征在于,在所述数据写入阶段中:
若所述数据信息持久化到数据库失败,则回滚所述数据库事务,并断开所述数据库连接。
3.根据权利要求1所述的数据处理方法,其特征在于,在所述数据处理阶段中:
若所述结果数据持久化到所述数据库失败,则回滚所述数据库事务,且不删除所述Redis缓存中的所述待处理数据。
4.根据权利要求1所述的数据处理方法,其特征在于:
所述Redis缓存中具有存储队列List,以及与所述List对应的已完成队列CompleteList;
在所述数据写入阶段中:
将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List中;
在所述数据处理阶段中:
从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中。
5.根据权利要求4所述的数据处理方法,其特征在于:
从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中的过程中,采用setnx原子操作对所述待处理数据进行加锁处理。
6.根据权利要求1所述的数据处理方法,其特征在于:在所述数据写入阶段中,所述将所述数据信息持久化到数据库与所述将所述数据信息中的待处理数据写入Redis缓存,在同一个事务边界中完成。
7.一种数据处理系统,其特征在于,包括:
数据库,用于进行所述数据信息和处理后的结果数据的存储;
Redis缓存,用于保存所述数据信息中的待处理数据;
第一服务模块,用于接收客户端发送来的数据信息,创建数据库连接,并开启数据库事务,将所述数据信息持久化到所述数据库,将所述数据信息中的待处理数据写入所述Redis缓存,之后提交数据库事务;
数据处理模块,用于从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理,将处理后的结果数据发送到消息队列;
第二服务模块,用于监听所述消息队列,并从所述消息队列中获取所述结果数据,并将所接收的结果数据持久化到所述数据库,之后删除所述Redis缓存中的所述待处理数据;
其中,所述数据信息为售后服务申请单数据;
所述数据信息中的待处理数据,为进行该售后服务申请的相应处理时所需要用到的数据。
8.根据权利要求7所述的数据处理系统,其特征在于:
所述Redis缓存中具有存储队列List,以及与所述List对应的已完成队列CompleteList;
所述第一服务模块将所述待处理数据写入Redis缓存时,是将所述待处理数据写入所述存储队列List中;
所述数据处理模块从所述Redis缓存获取所述待处理数据,并对所述待处理数据进行处理时,是从所述存储队列List中取出所述待处理数据以进行处理,将处理后的结果数据转存到与所述List相对应的Complete List中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410115278.3A CN103886079B (zh) | 2014-03-26 | 2014-03-26 | 一种数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410115278.3A CN103886079B (zh) | 2014-03-26 | 2014-03-26 | 一种数据处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103886079A CN103886079A (zh) | 2014-06-25 |
CN103886079B true CN103886079B (zh) | 2018-03-30 |
Family
ID=50954971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410115278.3A Active CN103886079B (zh) | 2014-03-26 | 2014-03-26 | 一种数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103886079B (zh) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572917A (zh) * | 2014-12-29 | 2015-04-29 | 成都致云科技有限公司 | 数据锁定方法、装置及分布式存储系统 |
CN104731899A (zh) * | 2015-03-19 | 2015-06-24 | 浪潮通用软件有限公司 | 一种基于异步处理的数据高并发处理方法 |
CN106156864A (zh) * | 2015-03-27 | 2016-11-23 | 天脉聚源(北京)科技有限公司 | 一种大数量订票的方法和系统 |
CN105159657B (zh) * | 2015-06-12 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 处理消息的方法和系统 |
CN104935658B (zh) * | 2015-06-17 | 2018-05-08 | 交通银行股份有限公司 | 一种银行任务分配方法及装置 |
CN104978416B (zh) * | 2015-06-26 | 2018-05-22 | 北京理工大学 | 一种基于Redis的对象智能检索方法 |
CN105208004B (zh) * | 2015-08-25 | 2018-10-23 | 联创汽车服务有限公司 | 一种基于obd设备的数据入库方法 |
CN106846024B (zh) * | 2015-12-07 | 2021-03-30 | 北京京东尚科信息技术有限公司 | 基于Redis的优惠券发放方法、系统和计算机可读存储介质 |
CN105630635B (zh) * | 2015-12-29 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 数据容灾系统和方法 |
CN105653356B (zh) * | 2016-01-05 | 2018-12-11 | 数贸科技(北京)有限公司 | 处理多服务器并发操作的方法及装置 |
CN105786973A (zh) * | 2016-02-02 | 2016-07-20 | 重庆秒盈电子商务有限公司 | 基于大数据技术的数据并发处理方法及系统 |
CN105808670A (zh) * | 2016-02-29 | 2016-07-27 | 武汉颂大教育科技股份有限公司 | 一种基于NoSQL实现电子阅卷的任务分配方法 |
CN107644020B (zh) * | 2016-07-20 | 2020-07-28 | 平安科技(深圳)有限公司 | 数据存储和调用的方法及装置 |
CN106294828B (zh) * | 2016-08-17 | 2019-05-21 | 华云科技有限公司 | 一种分区分片高qps数据持久化方法 |
CN107818475B (zh) * | 2016-09-14 | 2022-06-07 | 北京京东尚科信息技术有限公司 | 优惠券发放方法、装置和计算机可读存储介质 |
CN106407398A (zh) * | 2016-09-21 | 2017-02-15 | 福建中金在线信息科技有限公司 | 一种数据存储方法及系统 |
CN106776816A (zh) * | 2016-11-24 | 2017-05-31 | 北京小米移动软件有限公司 | 加锁方法和装置 |
CN108121730B (zh) * | 2016-11-30 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 一种将数据更新快速同步到业务系统的装置及方法 |
CN108664520B (zh) * | 2017-04-01 | 2021-02-26 | 北京京东尚科信息技术有限公司 | 维护数据一致性的方法、装置、电子设备和可读存储介质 |
CN108874811B (zh) * | 2017-05-10 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 一种数据恢复和迁移的方法和装置 |
CN109144992A (zh) * | 2017-06-15 | 2019-01-04 | 北京京东尚科信息技术有限公司 | 一种数据存储的方法和装置 |
CN107329858A (zh) * | 2017-07-10 | 2017-11-07 | 上海哎媲媲网络技术有限公司 | 一种数据写入Redis失败的快速容错处理方法 |
CN107479829B (zh) * | 2017-08-03 | 2020-04-17 | 杭州铭师堂教育科技发展有限公司 | 一种基于消息队列的Redis集群海量数据快速清理系统及方法 |
CN110019197B (zh) * | 2017-09-28 | 2021-07-30 | 武汉斗鱼网络科技有限公司 | 一种数据写入的方法、装置、服务器及介质 |
CN107885789A (zh) * | 2017-10-18 | 2018-04-06 | 上海瀚之友信息技术服务有限公司 | 一种数据中转系统及方法 |
CN107766504A (zh) * | 2017-10-20 | 2018-03-06 | 华迪计算机集团有限公司 | 一种实时流式数据处理分析方法及系统 |
CN110019873B (zh) * | 2017-12-25 | 2021-08-27 | 深圳市优必选科技有限公司 | 人脸数据处理方法、装置及设备 |
CN108345635A (zh) * | 2017-12-29 | 2018-07-31 | 广州品唯软件有限公司 | 一种高可用的账单系统及账单生成处理方法 |
CN108229887A (zh) * | 2018-01-10 | 2018-06-29 | 深圳友门鹿网络科技有限公司 | 基于动态加权与拆分算法的库存数据处理方法 |
CN109165192B (zh) * | 2018-06-27 | 2022-02-11 | 创新先进技术有限公司 | 一种数据存储方法及装置、一种计算设备及存储介质 |
CN109255701B (zh) * | 2018-08-27 | 2022-05-10 | 宜人恒业科技发展(北京)有限公司 | 一种网贷业务数据处理方法 |
CN109358805B (zh) * | 2018-09-03 | 2021-11-30 | 中新网络信息安全股份有限公司 | 一种数据缓存方法 |
CN109151762A (zh) * | 2018-10-19 | 2019-01-04 | 海南易乐物联科技有限公司 | 一种高并发采集数据的异步处理系统及处理方法 |
CN109582738A (zh) * | 2018-12-03 | 2019-04-05 | 广东鸭梨科技集团股份有限公司 | 一种处理高并发秒杀活动的方法 |
CN110287248A (zh) * | 2019-05-24 | 2019-09-27 | 视联动力信息技术股份有限公司 | 一种数据读写方法和系统 |
CN110363579A (zh) * | 2019-06-28 | 2019-10-22 | 北京奇才天下科技有限公司 | 一种基于优惠券的用户营销方法、装置和电子设备 |
CN112559244A (zh) * | 2019-09-25 | 2021-03-26 | 北京国双科技有限公司 | 数据处理方法、装置、电子设备和计算机可读介质 |
CN111190914A (zh) * | 2019-12-31 | 2020-05-22 | 武汉中海庭数据技术有限公司 | 一种应用于高精度地图的中间层数据安全提交方法、装置、设备及存储介质 |
CN111538463A (zh) * | 2020-04-30 | 2020-08-14 | 电子科技大学 | 一种实现内存数据库持久化的方法 |
CN112215637A (zh) * | 2020-09-21 | 2021-01-12 | 建信金融科技有限责任公司 | 虚拟资产的处理方法、装置、电子设备和存储介质 |
CN112163002A (zh) * | 2020-09-28 | 2021-01-01 | 广东巴金斯科技有限公司 | 一种跨境电商通关数据的处理方法和系统 |
CN112416955B (zh) * | 2020-11-18 | 2022-02-22 | 四川长虹电器股份有限公司 | 基于高并发环境的缓存一致性问题解决方法 |
CN112950307A (zh) * | 2021-01-29 | 2021-06-11 | 成都环宇知了科技有限公司 | 一种基于Swoole框架的秒杀方法及系统 |
CN113391933A (zh) * | 2021-06-21 | 2021-09-14 | 山东国晟华文信息技术有限公司 | 一种处理资金的方法 |
CN114064314A (zh) * | 2021-11-11 | 2022-02-18 | 中国建设银行股份有限公司 | 业务消息处理方法、系统、电子设备和计算机可读介质 |
CN114331576A (zh) * | 2021-12-30 | 2022-04-12 | 福建博思软件股份有限公司 | 基于高并发场景下的电子票号快速取票方法及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201119062D0 (en) * | 2011-11-04 | 2011-12-21 | Performance Horizon Group | Method and database system for manipulating data |
CN103064731A (zh) * | 2012-12-26 | 2013-04-24 | 人民搜索网络股份公司 | 一种提高消息队列系统性能的装置及其方法 |
-
2014
- 2014-03-26 CN CN201410115278.3A patent/CN103886079B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201119062D0 (en) * | 2011-11-04 | 2011-12-21 | Performance Horizon Group | Method and database system for manipulating data |
CN103064731A (zh) * | 2012-12-26 | 2013-04-24 | 人民搜索网络股份公司 | 一种提高消息队列系统性能的装置及其方法 |
Non-Patent Citations (1)
Title |
---|
Redis与数据库处理数据的两种模式;烈火网;《最火软件http://www.veryhuo.com/a/view/9266.html》;20121203;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103886079A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103886079B (zh) | 一种数据处理方法和系统 | |
CN109325762B (zh) | 平行链跨链交易方法、设备和存储介质 | |
US20210044662A1 (en) | Server side data cache system | |
CN105260136B (zh) | 数据读写方法及分布式存储系统 | |
JP7057903B2 (ja) | 分散システムにおいてコンピュータプロセスまたはタスクをスケジューリングする方法およびシステム | |
JP5363485B2 (ja) | トランザクション処理スループットを高めるためのトランザクション集約 | |
CN109327539A (zh) | 一种分布式块存储系统及其数据路由方法 | |
US9146944B2 (en) | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls | |
CA3176449A1 (en) | Sales locking method and system based on a caching | |
US20140157276A1 (en) | Distributed transaction routing | |
CN110019112A (zh) | 数据事务处理方法、装置以及电子设备 | |
CN107105064A (zh) | 一种交易信息的推送方法及系统 | |
US20090063618A1 (en) | Method and Apparatus for Client-Side Aggregation of Asynchronous Fragmented Requests | |
CN107609924A (zh) | 一款短时间高并发抢购场景运用 | |
CN103248707B (zh) | 文件访问方法、系统以及设备 | |
CN109271367A (zh) | 分布式文件系统多节点快照回滚方法及系统 | |
CN111292028A (zh) | 库存信息处理方法及系统、计算机系统和可读存储介质 | |
US11522966B2 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
US20240152444A1 (en) | Online query execution using a big data framework | |
US20070226738A1 (en) | Enabling a Designer to Specify Workflows to Process Various Results of Execution of Transactions | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
US20130018861A1 (en) | Dual locking mechanism for a domain | |
CN115374098A (zh) | 高并发支付订单防重方法、装置、系统、设备、介质和程序产品 | |
US20100332505A1 (en) | Handling Data Access Requests in Computer Program Updates | |
WO2022183837A1 (zh) | 交易方法、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200515 Address after: 710100 Building 5, center square, aerospace city, No. 666, East Chang'an Street, national civil aerospace industry base, Xi'an City, Shaanxi Province Patentee after: Xi'an jingxundi Supply Chain Technology Co., Ltd Address before: 100080, Beijing, Suzhou Street, No. 20, building 2, No. 2, Haidian District Co-patentee before: BEIJING JINGDONG CENTURY TRADING Co.,Ltd. Patentee before: BEIJING JINGDONG SHANGKE INFORMATION TECHNOLOGY Co.,Ltd. |