CN106326499B - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN106326499B CN106326499B CN201610899295.XA CN201610899295A CN106326499B CN 106326499 B CN106326499 B CN 106326499B CN 201610899295 A CN201610899295 A CN 201610899295A CN 106326499 B CN106326499 B CN 106326499B
- Authority
- CN
- China
- Prior art keywords
- information
- user identifier
- user
- external cache
- operated
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法及装置,用于提高在高并发情况下对操作对象进行操作的效率,该方法包括:获取对操作对象进行操作的请求,对操作对象进行操作的请求中包括用户标识以及操作对象标识;查询外部缓存中是否存在用户标识对应的用户信息,如果外部缓存中存在用户标识对应的用户信息,从外部缓存中获取用户标识对应的用户信息;查询内存中是否存在操作对象标识对应的配置信息,如果内存中存在操作对象标识对应的配置信息,从内存中获取操作对象标识对应的配置信息;当用户标识对应的用户信息与操作对象标识对应的配置信息匹配时,对操作对象进行操作并生成包括用户标识以及操作对象标识的操作信息;将操作信息写入至数据库的一个分表中。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种数据处理方法及装置。
背景技术
在实际生产过程中需要对操作对象进行操作,例如在网络直播的过程中用户可以获取一些虚拟道具,其中虚拟道具可以理解为操作对象,获取虚拟道具的过程则可以为对操作对象进行操作的过程。在现有技术中,对操作对象进行操作时需要使用数据库单表对操作中需要或产生的数据进行备份及缓存,但是随着移动互联网的普及,存在高并发地对操作对象进行操作的情况,在实际生产测试中发现数据库对单表并发更新会出现卡顿现象,使操作等待时间加长、效率较低。
发明内容
有鉴于此,本发明提供一种数据处理方法及装置,以解决现有技术中高并发地对操作对象进行操作时等待时间长、效率低的技术问题。
为解决上述问题,本发明提供的技术方案如下:
一种数据处理方法,所述方法包括:
获取对操作对象进行操作的请求,所述对操作对象进行操作的请求中包括用户标识以及操作对象标识;
查询外部缓存中是否存在所述用户标识对应的用户信息,如果所述外部缓存中存在所述用户标识对应的用户信息,从所述外部缓存中获取所述用户标识对应的用户信息;
查询内存中是否存在所述操作对象标识对应的配置信息,如果所述内存中存在所述操作对象标识对应的配置信息,从所述内存中获取所述操作对象标识对应的配置信息;
当所述用户标识对应的用户信息与所述操作对象标识对应的配置信息匹配时,对所述操作对象进行操作并生成包括所述用户标识以及所述操作对象标识的操作信息;
将所述操作信息写入至数据库的一个分表中。
相应的,所述将所述操作信息写入至数据库的一个分表中,包括:
根据所述用户标识计算数据库分表序号,将所述操作信息写入至数据库具有所述数据库分表序号的一个分表中。
相应的,在所述对所述操作对象进行操作之后,所述方法还包括:
重新计算所述用户标识对应的用户信息,并将重新计算得到的所述用户标识对应的用户信息写入所述数据库中覆盖原始的所述用户标识对应的用户信息;
向所述外部缓存发送删除指令以删除所述外部缓存中的所述用户标识对应的用户信息以及所述包括所述用户标识的操作信息。
相应的,在所述查询外部缓存中是否存在所述用户标识对应的用户信息之后,所述方法还包括:
如果所述外部缓存中不存在所述用户标识对应的用户信息,从所述数据库中读取所述用户标识对应的用户信息并将所述用户标识对应的用户信息保存至所述外部缓存中。
相应的,所述方法还包括:
在将更新后的所述操作对象对应的配置信息写入所述数据库中覆盖原始的所述操作对象对应的配置信息之后,接收所述操作对象对应的配置信息已更新的通知;
删除所述内存中的所述操作对象标识对应的配置信息。
相应的,在所述查询内存中是否存在所述操作对象标识对应的配置信息之后,所述方法还包括:
如果所述内存中不存在所述操作对象标识对应的配置信息,从所述数据库中读取所述操作对象标识对应的配置信息并将所述操作对象标识对应的配置信息保存至所述内存中。
相应的,所述方法还包括:
接收查询操作信息请求,所述查询操作信息请求包括用户标识;
查询所述外部缓存中是否存在包括所述用户标识的操作信息,如果所述外部缓存中存在所述包括所述用户标识的操作信息,从所述外部缓存中获取所述包括所述用户标识的操作信息;如果所述外部缓存中不存在所述包括所述用户标识的操作信息,从所述数据库中读取所述包括所述用户标识的操作信息并将所述包括所述用户标识的操作信息保存至所述外部缓存中。
一种数据处理装置,所述装置包括:
第一获取单元,用于获取对操作对象进行操作的请求,所述对操作对象进行操作的请求中包括用户标识以及操作对象标识;
第二获取单元,用于查询外部缓存中是否存在所述用户标识对应的用户信息,如果所述外部缓存中存在所述用户标识对应的用户信息,从所述外部缓存中获取所述用户标识对应的用户信息;
第三获取单元,用于查询内存中是否存在所述操作对象标识对应的配置信息,如果所述内存中存在所述操作对象标识对应的配置信息,从所述内存中获取所述操作对象标识对应的配置信息;
生成单元,用于当所述用户标识对应的用户信息与所述操作对象标识对应的配置信息匹配时,对所述操作对象进行操作并生成包括所述用户标识以及所述操作对象标识的操作信息;
第一写入单元,用于将所述操作信息写入至数据库的一个分表中。
相应的,所述第一写入单元具体用于:
根据所述用户标识计算数据库分表序号,将所述操作信息写入至数据库具有所述数据库分表序号的一个分表中。
相应的,所述装置还包括:
第二写入单元,用于重新计算所述用户标识对应的用户信息,并将重新计算得到的所述用户标识对应的用户信息写入所述数据库中覆盖原始的所述用户标识对应的用户信息;
发送单元,用于向所述外部缓存发送删除指令以删除所述外部缓存中的所述用户标识对应的用户信息以及所述包括所述用户标识的操作信息。
相应的,所述装置还包括:
第四获取单元,用于如果所述外部缓存中不存在所述用户标识对应的用户信息,从所述数据库中读取所述用户标识对应的用户信息并将所述用户标识对应的用户信息保存至所述外部缓存中。
相应的,所述装置还包括:
第一接收单元,用于在将更新后的所述操作对象对应的配置信息写入所述数据库中覆盖原始的所述操作对象对应的配置信息之后,接收所述操作对象对应的配置信息已更新的通知;
删除单元,用于删除所述内存中的所述操作对象标识对应的配置信息。
相应的,所述装置还包括:
第五获取单元,用于如果所述内存中不存在所述操作对象标识对应的配置信息,从所述数据库中读取所述操作对象标识对应的配置信息并将所述操作对象标识对应的配置信息保存至所述内存中。
相应的,所述装置还包括:
第二接收单元,用于接收查询操作信息请求,所述查询操作信息请求包括用户标识;
第六获取单元,用于查询所述外部缓存中是否存在包括所述用户标识的操作信息,如果所述外部缓存中存在所述包括所述用户标识的操作信息,从所述外部缓存中获取所述包括所述用户标识的操作信息;如果所述外部缓存中不存在所述包括所述用户标识的操作信息,从所述数据库中读取所述包括所述用户标识的操作信息并将所述包括所述用户标识的操作信息保存至所述外部缓存中。
由此可见,本发明实施例具有如下有益效果:
本发明实施例使用外部缓存对用户信息进行缓存、使用内存对不经常修改的配置信息进行缓存,使用从外部缓存中获取用户信息、从内存中获取配置信息,完成对操作对象的操作,同时将操作产生的操作信息写入数据库的一个分表中,通过数据的分级存储减少对数据库的读写,且使用数据库分表提高数据库同时***或更新数据的并发数,从而提高对操作对象进行操作的处理速度与效率,达到更高的性能要求。
附图说明
图1为本发明实施例中提供的数据处理方法实施例一的流程图;
图2为本发明实施例中提供的数据处理方法实施例二的流程图;
图3为本发明实施例中提供的数据处理装置实施例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
在现有技术中,对操作对象进行操作的***通常采用数据库和外部缓存的形式进行数据备份以及缓存,在高并发地情况下会存在卡顿等现象。
在实际生成测试中发现,数据库中的备份数据采用单表形式存储,并发更新的效率较低。假设当前数据单个数据表可同时***或更新数据的条数为n,但是当前有n+m个对操作对象进行操作的请求时,数据库只能优先处理该表的n个***或更新数据的操作,而剩余m个操作只能先等待直到数据库当前正在处理的操作完结才能继续往下执行,单表的存储结构会导致并发越高等待时间越长的情况。而仅使用外部缓存作为数据缓存时,在对操作对象进行操作时获取所需要的配置信息、用户信息时都需要建立socket去访问外部缓存服务器,在连接socket的过程中需要建立、发送及接收网络请求等多个操作,占用大量的***资源,同时一次操作过程中多次连接socket也会增加处理流程的总时间,如果偶尔因为网络等外部因素导致socket连接失败无法读取配置信息,也会导致本次操作失败。
为此,本发明实施例中提供一种数据处理方法及装置,本发明实施例中数据的存储结构包括数据库以及两种缓存,两种缓存分别为支持高并发地外部缓存(例如Redis或Memcached等)以及服务器本机内存。对于操作产生的操作信息以及操作之后更新的用户信息、更新的配置信息使用数据库作为数据存储备份,并使用分表的形式提高数据库中同时***或更新数据的并发数。对于不常修改的配置信息,缓存于服务器本机内存中,对于一些用户相关的并且需要经常修改的用户信息缓存在外部缓存中,当用户信息发生改变时,删除外部缓存中的缓存并从数据库中读取最新的备份。通过数据的分级存储,能够使***达到较高的性能要求,提高操作的效率。
基于上述思想,参见图1所示,示出了本发明实施例中提供的数据处理方法实施例一,本实施例可以应用于服务器中,可以包括以下步骤:
步骤101:获取对操作对象进行操作的请求,对操作对象进行操作的请求中包括用户标识以及操作对象标识。
根据实际应用场景,对操作对象进行操作可以为多种,例如在网络直播类应用程序、游戏类应用程序中获取道具的操作,使用购物类应用程序购买商品的操作等等,操作对象即为被获取的道具或者被购买的商品等等。服务器可以获取用户发送的对操作对象进行操作的请求,该请求中可以包括发送该请求用户的用户标识以及操作对象的标识。
步骤102:查询外部缓存中是否存在用户标识对应的用户信息,如果外部缓存中存在用户标识对应的用户信息,从外部缓存中获取用户标识对应的用户信息。
在本发明的一些可能的实现方式中,如果外部缓存中不存在用户标识对应的用户信息,从数据库中读取用户标识对应的用户信息并将用户标识对应的用户信息保存至外部缓存中。
在本实施例中,使用外部缓存来缓存可以根据对操作对象进行操作而变更的用户信息,用户信息例如用户账户余额等等。在某些情况下,可能无法顺利完成对操作对象所进行的操作,则在再次接收到对操作对象进行操作的请求时需要重新获取用户信息,而从外部缓存中获取用户信息可以减少对数据库的访问次数,以提高对操作对象进行操作的速度。
在完成对操作对象的操作后用户信息会发生改变,需要删除外部缓存中的用户信息并更新数据库中的备份的用户信息,则如果在外部缓存中不存在用户标识对应的用户信息时,才需要从数据库中读取用户标识对应的用户信息并将用户标识对应的用户信息保存至外部缓存中,以便于下次可以直接从外部缓存中获取最新的用户信息。
步骤103:查询内存中是否存在操作对象标识对应的配置信息,如果内存中存在操作对象标识对应的配置信息,从内存中获取操作对象标识对应的配置信息。
在本发明的一些可能的实现方式中,如果内存中不存在操作对象标识对应的配置信息,从数据库中读取操作对象标识对应的配置信息并将操作对象标识对应的配置信息保存至内存中。
服务器的内存相较于外部缓存不便于数据的修改,因此在本实施例中,使用服务器的内存来缓存不经常修改的配置信息,配置信息表示操作对象的属性,例如道具或商品价格等等。从内存中获取用户信息可以减少对数据库的访问次数且可以减少与外部缓存的连接数量,以提高对操作对象进行操作的速度。
在本发明的一些可能的实现方式中,还可以包括:在将更新后的操作对象对应的配置信息写入数据库中覆盖原始的操作对象对应的配置信息之后,接收操作对象对应的配置信息已更新的通知;删除内存中的操作对象标识对应的配置信息。
也即在需要更新操作对象的配置信息时,首先修改数据库中操作对象对应的配置信息,服务器将操作对象对应的配置信息已更新的通知通过JMS(Java Message Service,Java消息服务)推送给全部可以提供对操作对象进行操作的服务器,以使各个服务器在接收到操作对象对应的配置信息已更新的通知后主动删除内存中的配置信息,以便下一次执行对操作对象进行操作时从数据库中读取最新的配置信息,即如果内存中不存在操作对象标识对应的配置信息的情况,这时需要从数据库中读取操作对象标识对应的配置信息并将操作对象标识对应的配置信息保存至内存中。
另外,需要注意的是,在本实施例中获取用户信息以及获取配置信息的顺序并不需要限定,也即步骤102与步骤103之间的顺序不进行限定。
步骤104:当用户标识对应的用户信息与操作对象标识对应的配置信息匹配时,对操作对象进行操作并生成包括用户标识以及操作对象标识的操作信息。
在用户信息与配置信息匹配可以进行对操作对象的操作后,会生成操作信息,例如操作对象为某一种商品,用户信息为用户账户余额,配置信息为商品价格,在用户账户余额大于商品价格时,可以执行购买该商品的操作,在操作成功后,会生成操作信息以记录该次操作。
在本发明的一些可能的实现方式中,在对操作对象进行操作之后,还包括:重新计算用户标识对应的用户信息,并将重新计算得到的用户标识对应的用户信息写入数据库中覆盖原始的用户标识对应的用户信息;向外部缓存发送删除指令以删除外部缓存中的用户标识对应的用户信息以及包括用户标识的操作信息。
在操作成功后,用户信息会发生相应改变,例如用户账户余额减少,这时需要更新数据库中的用户信息,并删除外部缓存中该用户的用户信息以及该用户对应的操作信息。
步骤105:将操作信息写入至数据库的一个分表中。
操作信息通过分表的形式进行存储可以提高数据库并发***或更新数据的性能。
在本发明的一些可能的实现方式中,步骤105的具体实现可以包括:
根据用户标识计算数据库分表序号,将操作信息写入至数据库具有数据库分表序号的一个分表中。
在实际应用中,可以根据用户标识根据一定的哈希规则计算出属于该用户标识的唯一哈希值,将不同哈希值划分到多个分组中,每个分组可以对应于一个数据库分表序号,这样可以根据用户标识计算出该用户标识所对应的数据库分表序号,将包括该用户标识的操作信息写入数据库相应的分表中。
另外,在本实施例中还可以接收查询操作信息请求,查询操作信息请求包括用户标识;查询外部缓存中是否存在包括用户标识的操作信息,如果外部缓存中存在包括用户标识的操作信息,从外部缓存中获取包括用户标识的操作信息;如果外部缓存中不存在包括用户标识的操作信息,从数据库中读取包括用户标识的操作信息并将包括用户标识的操作信息保存至外部缓存中。
也即用户还可以随时查询所产生的操作信息,类似的,为了减少对数据库的访问次数将操作信息缓存于外部缓存中,优先从外部缓存中获取某一用户标识对应的操作信息,如果外部缓存中没有包括该用户标识的操作信息,再访问数据库获取并将操作信息保存至外部缓存中,以便于下次查询操作信息时可以从外部缓存中获取操作信息。
这样,本发明实施例使用外部缓存对用户信息进行缓存、使用内存对不经常修改的配置信息进行缓存,使用从外部缓存中获取用户信息、从内存中获取配置信息,完成对操作对象的操作,同时将操作产生的操作信息写入数据库的一个分表中,通过数据的分级存储减少对数据库的读写,且使用数据库分表提高数据库同时***或更新数据的并发数,从而提高对操作对象进行操作的处理速度与效率,达到更高的性能要求。
参见图2所示,示出了本发明实施例中提供的数据处理方法实施例一,本实施例可以应用于服务器中,可以包括以下步骤:
步骤201:获取对操作对象进行操作的请求,对操作对象进行操作的请求中包括用户标识以及操作对象标识。
步骤202:查询外部缓存中是否存在用户标识对应的用户信息,如果是,进入步骤203,如果否,进入步骤204。
步骤203:从外部缓存中获取用户标识对应的用户信息。
步骤204:从数据库中读取用户标识对应的用户信息并将用户标识对应的用户信息保存至外部缓存中。
步骤205:查询内存中是否存在操作对象标识对应的配置信息,如果是,进入步骤206,如果否,进入步骤207。
步骤206:从内存中获取操作对象标识对应的配置信息。
步骤207:从数据库中读取操作对象标识对应的配置信息并将操作对象标识对应的配置信息保存至内存中。
步骤207:当用户标识对应的用户信息与操作对象标识对应的配置信息匹配时,对操作对象进行操作并生成包括用户标识以及操作对象标识的操作信息。
步骤208:根据用户标识计算数据库分表序号,将操作信息写入至数据库具有数据库分表序号的一个分表中。
步骤209:重新计算用户标识对应的用户信息,并将重新计算得到的用户标识对应的用户信息写入数据库中覆盖原始的用户标识对应的用户信息。
步骤210:向外部缓存发送删除指令以删除外部缓存中的用户标识对应的用户信息以及包括用户标识的操作信息。
另外,基于本实施例还可以在将更新后的操作对象对应的配置信息写入数据库中覆盖原始的操作对象对应的配置信息之后,接收操作对象对应的配置信息已更新的通知,删除内存中的操作对象标识对应的配置信息。
基于本实施例还可以在用户需要查询操作信息时,接收查询操作信息请求,查询操作信息请求包括用户标识;查询外部缓存中是否存在包括用户标识的操作信息,如果外部缓存中存在包括用户标识的操作信息,从外部缓存中获取包括用户标识的操作信息;如果外部缓存中不存在包括用户标识的操作信息,从数据库中读取包括用户标识的操作信息并将包括用户标识的操作信息保存至外部缓存中。
这样,本发明实施例使用外部缓存对用户信息进行缓存、使用内存对不经常修改的配置信息进行缓存,使用从外部缓存中获取用户信息、从内存中获取配置信息,完成对操作对象的操作,同时将操作产生的操作信息写入数据库的一个分表中,通过数据的分级存储减少对数据库的读写,且使用数据库分表提高数据库同时***或更新数据的并发数,从而提高对操作对象进行操作的处理速度与效率,达到更高的性能要求。
以下再以在应用程序中获取道具的操作为对操作对象的操作为例,对本发明实施例中提供的数据处理方法在实际应用中的实现进行说明。
用户通过应用程序中的接口向服务器发送获取道具的请求,该获取道具的请求即为对操作对象进行操作的请求,该请求中包括了用户标识以及道具标识,道具标识即为操作对象标识。
服务器接收到用户标识以及道具标识后,需要获取操作所需要的各种信息。根据道具标识查询内存中是否存在该道具标识对应的配置信息,如果是,从内存中获取配置信息,如果否,自动从数据库的备份中读取配置信息并重新保存到服务器内存中。根据用户标识从外部缓存中查询是否存在该用户标识对应的用户账户信息,用户账号信息即为用户信息,如果是,从外部缓存中获取用户账户信息,如果否,自动从数据库的备份中读取用户账户信息并重新保存到外部缓存中。
服务器根据用户账号信息中的余额、用户等级以及配置信息中的道具价格等条件判断用户是否可以获取该道具,如果是,即用户标识对应的用户信息与操作对象标识对应的配置信息匹配,则获取道具的操作成功,则生成消费流水数据,消费流水数据即为上述实施例中的操作信息。使用用户标识根据一定的哈希规则计算出该用户的消费流水数据应该存放的数据库分表序号,并将消费流水数据***到该序号的分表中。同时,计算出获取道具后剩余的余额,更新用户账号信息,并将用户账号信息更新到数据库中。
当在数据库中***消费流水数据和更新用户账号信息均成功时,主动删除外部缓存中的用户账户信息缓存和消费流水数据缓存,以便下次用户获取道具时能够自动从数据库中读取正确的用户账户信息并在查询消费流水数据时能从数据库中读取到新增的消费流水数据。
另外,还可以在获取道具成功后将消费状态码返回给用户,但消费状态码为成功时,代表用户已经成功获取了该道具。
而当需要变更配置信息时(例如道具价格),运营工作人员向服务器提交该道具的道具标识和最新的配置信息,服务器更新数据库中该道具的配置信息,服务器通过JMS将配置信息已更新的通知推送给所有可以提供获取道具操作的服务器,服务器接收到该通知后主动删除内存中保存的该道具的配置信息,以便下一次用户获取该道具时,各个服务器能从数据库中读取最新的配置信息备份。
这样,通过分表存储能够提高数据库同一时间***或更新数据的条数,常用但不常更新的配置信息使用内存代替外部缓存来进行缓存,能够降低服务器因为建立socket带来的资源消耗并缩短处理操作所需时间,而通过JMS实时通知能够使服务器即时获得最新的配置信息。
参见图3所示,示出了本发明实施例中提供的数据处理装置实施例,可以包括:
第一获取单元301,用于获取对操作对象进行操作的请求,对操作对象进行操作的请求中包括用户标识以及操作对象标识。
第二获取单元302,用于查询外部缓存中是否存在用户标识对应的用户信息,如果外部缓存中存在用户标识对应的用户信息,从外部缓存中获取用户标识对应的用户信息。
第三获取单元303,用于查询内存中是否存在操作对象标识对应的配置信息,如果内存中存在操作对象标识对应的配置信息,从内存中获取操作对象标识对应的配置信息。
生成单元304,用于当用户标识对应的用户信息与操作对象标识对应的配置信息匹配时,对操作对象进行操作并生成包括用户标识以及操作对象标识的操作信息。
第一写入单元305,用于将操作信息写入至数据库的一个分表中。
在本发明的一些可能的实现方式中,第一写入单元可以具体用于:
根据用户标识计算数据库分表序号,将操作信息写入至数据库具有数据库分表序号的一个分表中。
在本发明的一些可能的实现方式中,本实施例中提供的数据处理装置可以包括:
第二写入单元,用于重新计算用户标识对应的用户信息,并将重新计算得到的用户标识对应的用户信息写入数据库中覆盖原始的用户标识对应的用户信息;
发送单元,用于向外部缓存发送删除指令以删除外部缓存中的用户标识对应的用户信息以及包括用户标识的操作信息。
在本发明的一些可能的实现方式中,本实施例中提供的数据处理装置可以包括:
第四获取单元,用于如果外部缓存中不存在用户标识对应的用户信息,从数据库中读取用户标识对应的用户信息并将用户标识对应的用户信息保存至外部缓存中。
在本发明的一些可能的实现方式中,本实施例中提供的数据处理装置可以包括:
第一接收单元,用于在将更新后的操作对象对应的配置信息写入数据库中覆盖原始的操作对象对应的配置信息之后,接收操作对象对应的配置信息已更新的通知;
删除单元,用于删除内存中的操作对象标识对应的配置信息。
在本发明的一些可能的实现方式中,本实施例中提供的数据处理装置可以包括:
第五获取单元,用于如果内存中不存在操作对象标识对应的配置信息,从数据库中读取操作对象标识对应的配置信息并将操作对象标识对应的配置信息保存至内存中。
在本发明的一些可能的实现方式中,本实施例中提供的数据处理装置可以包括:
第二接收单元,用于接收查询操作信息请求,查询操作信息请求包括用户标识;
第六获取单元,用于查询外部缓存中是否存在包括用户标识的操作信息,如果外部缓存中存在包括用户标识的操作信息,从外部缓存中获取包括用户标识的操作信息;如果外部缓存中不存在包括用户标识的操作信息,从数据库中读取包括用户标识的操作信息并将包括用户标识的操作信息保存至外部缓存中。
这样,本发明实施例使用外部缓存对用户信息进行缓存、使用内存对不经常修改的配置信息进行缓存,使用从外部缓存中获取用户信息、从内存中获取配置信息,完成对操作对象的操作,同时将操作产生的操作信息写入数据库的一个分表中,通过数据的分级存储减少对数据库的读写,且使用数据库分表提高数据库同时***或更新数据的并发数,从而提高对操作对象进行操作的处理速度与效率,达到更高的性能要求。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法包括:
获取对操作对象进行操作的请求,所述对操作对象进行操作的请求中包括用户标识以及操作对象标识;
查询外部缓存中是否存在所述用户标识对应的用户信息,如果所述外部缓存中存在所述用户标识对应的用户信息,从所述外部缓存中获取所述用户标识对应的用户信息;
查询内存中是否存在所述操作对象标识对应的配置信息,如果所述内存中存在所述操作对象标识对应的配置信息,从所述内存中获取所述操作对象标识对应的配置信息;其中,所述配置信息表示所述操作对象的属性;
当所述用户标识对应的用户信息与所述操作对象标识对应的配置信息匹配时,对所述操作对象进行操作并生成包括所述用户标识以及所述操作对象标识的操作信息;
将所述操作信息写入至数据库的一个分表中。
2.根据权利要求1所述的方法,其特征在于,所述将所述操作信息写入至数据库的一个分表中,包括:
根据所述用户标识计算数据库分表序号,将所述操作信息写入至数据库具有所述数据库分表序号的一个分表中。
3.根据权利要求1所述的方法,其特征在于,在所述对所述操作对象进行操作之后,所述方法还包括:
重新计算所述用户标识对应的用户信息,并将重新计算得到的所述用户标识对应的用户信息写入所述数据库中覆盖原始的所述用户标识对应的用户信息;
向所述外部缓存发送删除指令以删除所述外部缓存中的所述用户标识对应的用户信息以及所述包括所述用户标识的操作信息。
4.根据权利要求1或3所述的方法,其特征在于,在所述查询外部缓存中是否存在所述用户标识对应的用户信息之后,所述方法还包括:
如果所述外部缓存中不存在所述用户标识对应的用户信息,从所述数据库中读取所述用户标识对应的用户信息并将所述用户标识对应的用户信息保存至所述外部缓存中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将更新后的所述操作对象对应的配置信息写入所述数据库中覆盖原始的所述操作对象对应的配置信息之后,接收所述操作对象对应的配置信息已更新的通知;
删除所述内存中的所述操作对象标识对应的配置信息。
6.根据权利要求1或5所述的方法,其特征在于,在所述查询内存中是否存在所述操作对象标识对应的配置信息之后,所述方法还包括:
如果所述内存中不存在所述操作对象标识对应的配置信息,从所述数据库中读取所述操作对象标识对应的配置信息并将所述操作对象标识对应的配置信息保存至所述内存中。
7.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
接收查询操作信息请求,所述查询操作信息请求包括用户标识;
查询所述外部缓存中是否存在包括所述用户标识的操作信息,如果所述外部缓存中存在所述包括所述用户标识的操作信息,从所述外部缓存中获取所述包括所述用户标识的操作信息;如果所述外部缓存中不存在所述包括所述用户标识的操作信息,从所述数据库中读取所述包括所述用户标识的操作信息并将所述包括所述用户标识的操作信息保存至所述外部缓存中。
8.一种数据处理装置,其特征在于,所述装置包括:
第一获取单元,用于获取对操作对象进行操作的请求,所述对操作对象进行操作的请求中包括用户标识以及操作对象标识;
第二获取单元,用于查询外部缓存中是否存在所述用户标识对应的用户信息,如果所述外部缓存中存在所述用户标识对应的用户信息,从所述外部缓存中获取所述用户标识对应的用户信息;
第三获取单元,用于查询内存中是否存在所述操作对象标识对应的配置信息,如果所述内存中存在所述操作对象标识对应的配置信息,从所述内存中获取所述操作对象标识对应的配置信息;其中,所述配置信息表示所述操作对象的属性;
生成单元,用于当所述用户标识对应的用户信息与所述操作对象标识对应的配置信息匹配时,对所述操作对象进行操作并生成包括所述用户标识以及所述操作对象标识的操作信息;
第一写入单元,用于将所述操作信息写入至数据库的一个分表中。
9.根据权利要求8所述的装置,其特征在于,所述第一写入单元具体用于:
根据所述用户标识计算数据库分表序号,将所述操作信息写入至数据库具有所述数据库分表序号的一个分表中。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第二写入单元,用于重新计算所述用户标识对应的用户信息,并将重新计算得到的所述用户标识对应的用户信息写入所述数据库中覆盖原始的所述用户标识对应的用户信息;
发送单元,用于向所述外部缓存发送删除指令以删除所述外部缓存中的所述用户标识对应的用户信息以及所述包括所述用户标识的操作信息。
11.根据权利要求8或10所述的装置,其特征在于,所述装置还包括:
第四获取单元,用于如果所述外部缓存中不存在所述用户标识对应的用户信息,从所述数据库中读取所述用户标识对应的用户信息并将所述用户标识对应的用户信息保存至所述外部缓存中。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第一接收单元,用于在将更新后的所述操作对象对应的配置信息写入所述数据库中覆盖原始的所述操作对象对应的配置信息之后,接收所述操作对象对应的配置信息已更新的通知;
删除单元,用于删除所述内存中的所述操作对象标识对应的配置信息。
13.根据权利要求8或12所述的装置,其特征在于,所述装置还包括:
第五获取单元,用于如果所述内存中不存在所述操作对象标识对应的配置信息,从所述数据库中读取所述操作对象标识对应的配置信息并将所述操作对象标识对应的配置信息保存至所述内存中。
14.根据权利要求8或10所述的装置,其特征在于,所述装置还包括:
第二接收单元,用于接收查询操作信息请求,所述查询操作信息请求包括用户标识;
第六获取单元,用于查询所述外部缓存中是否存在包括所述用户标识的操作信息,如果所述外部缓存中存在所述包括所述用户标识的操作信息,从所述外部缓存中获取所述包括所述用户标识的操作信息;如果所述外部缓存中不存在所述包括所述用户标识的操作信息,从所述数据库中读取所述包括所述用户标识的操作信息并将所述包括所述用户标识的操作信息保存至所述外部缓存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610899295.XA CN106326499B (zh) | 2016-10-14 | 2016-10-14 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610899295.XA CN106326499B (zh) | 2016-10-14 | 2016-10-14 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106326499A CN106326499A (zh) | 2017-01-11 |
CN106326499B true CN106326499B (zh) | 2019-10-18 |
Family
ID=57817743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610899295.XA Active CN106326499B (zh) | 2016-10-14 | 2016-10-14 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326499B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919683B (zh) * | 2017-03-02 | 2020-04-28 | 惠州市亿能电子有限公司 | 一种快速查询数据的方法及*** |
CN109660570B (zh) * | 2017-10-10 | 2021-09-07 | 武汉斗鱼网络科技有限公司 | 一种道具发放方法、存储介质、设备及*** |
CN108563697B (zh) * | 2018-03-22 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置和存储介质 |
CN108768859B (zh) * | 2018-05-17 | 2021-05-25 | 迈普通信技术股份有限公司 | 数据处理方法、装置及*** |
CN109800229B (zh) * | 2018-12-29 | 2021-10-08 | 深圳云天励飞技术有限公司 | 数据访问方法及相关设备 |
CN110516061A (zh) * | 2019-07-24 | 2019-11-29 | 视联动力信息技术股份有限公司 | 一种数据处理方法、装置和计算机可读存储介质 |
CN111787416A (zh) * | 2020-05-21 | 2020-10-16 | 视联动力信息技术股份有限公司 | 数据包处理方法、装置及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及*** |
CN102332007A (zh) * | 2011-08-06 | 2012-01-25 | 浪潮电子信息产业股份有限公司 | 一种提升文件访问命中率的缓存服务器硬件配置*** |
CN102722405A (zh) * | 2012-06-06 | 2012-10-10 | 新浪网技术(中国)有限公司 | 高并发、多线程应用中的计数方法及*** |
CN104504158A (zh) * | 2015-01-19 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种快速更新业务的内存缓存的方法和设备 |
-
2016
- 2016-10-14 CN CN201610899295.XA patent/CN106326499B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及*** |
CN102332007A (zh) * | 2011-08-06 | 2012-01-25 | 浪潮电子信息产业股份有限公司 | 一种提升文件访问命中率的缓存服务器硬件配置*** |
CN102722405A (zh) * | 2012-06-06 | 2012-10-10 | 新浪网技术(中国)有限公司 | 高并发、多线程应用中的计数方法及*** |
CN104504158A (zh) * | 2015-01-19 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种快速更新业务的内存缓存的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106326499A (zh) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326499B (zh) | 一种数据处理方法及装置 | |
CN106911780B (zh) | 业务id生成方法、装置及*** | |
US8972690B2 (en) | Methods and apparatuses for usage based allocation block size tuning | |
US7856525B2 (en) | Content addressed storage device configured to maintain content address mapping | |
CN111340470B (zh) | 区块链交易处理方法、节点及合约容器 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
CN109977129A (zh) | 多级数据缓存方法及设备 | |
CN108572991A (zh) | 数据库处理方法、装置和存储介质 | |
CN107025289B (zh) | 一种数据处理的方法及相关设备 | |
CN107025243A (zh) | 一种资源数据的查询方法、查询客户端和查询*** | |
CN108196879A (zh) | 业务处理方法、装置、设备及计算机可读存储介质 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
CN109144791A (zh) | 数据转存方法、装置和数据管理服务器 | |
CN105701112A (zh) | 一种数据处理方法、装置及*** | |
CN109471843A (zh) | 一种元数据缓存方法、***及相关装置 | |
CN108347459A (zh) | 一种云端数据快速存储方法及装置 | |
CN109213604A (zh) | 一种数据源的管理方法和装置 | |
CN109086462A (zh) | 一种分布式文件***中元数据的管理方法 | |
CN109446225A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN109542612A (zh) | 一种热点关键字获取方法、装置及服务器 | |
CN110750566A (zh) | 数据处理方法、装置、缓存***及缓存管理平台 | |
CN106055640A (zh) | 缓存的管理方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |