CN110427386B - 数据处理方法、装置及计算机存储介质 - Google Patents

数据处理方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN110427386B
CN110427386B CN201910718451.1A CN201910718451A CN110427386B CN 110427386 B CN110427386 B CN 110427386B CN 201910718451 A CN201910718451 A CN 201910718451A CN 110427386 B CN110427386 B CN 110427386B
Authority
CN
China
Prior art keywords
data
request
data processing
memory queue
cache
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
Application number
CN201910718451.1A
Other languages
English (en)
Other versions
CN110427386A (zh
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.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co 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 Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN201910718451.1A priority Critical patent/CN110427386B/zh
Publication of CN110427386A publication Critical patent/CN110427386A/zh
Application granted granted Critical
Publication of CN110427386B publication Critical patent/CN110427386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据处理方法、装置及计算机存储介质,属于计算机技术领域。在本申请中,针对同一数据的所有数据处理请求均被添加至同一个内存队列中了,而内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的,因此,在接收到数据更新请求之后,即使接收到针对同一数据的数据查询请求,由于内存队列中该数据查询请求位于数据更新请求的后面,因此在该数据更新请求未被处理完成之前,该数据查询请求将不会被处理,只有在该数据更新请求处理完成之后,该数据查询请求才会被处理,如此可以保证基于数据查询请求获取的数据是更新后的数据。

Description

数据处理方法、装置及计算机存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种查询数据的方法、装置及计算机存储介质。
背景技术
目前,为了提高服务器访问数据库的速度,可以将数据库中访问频率较高的热点数据备份在缓存中。当服务器接收到数据查询请求时,便可先从缓存中查询数据,在缓存中没有待查询的数据时,再从数据库中查询数据。
相关技术中,在对数据库中的数据进行更新时,通常包括两个操作,一个是更新数据库中数据,另一个是删除缓存中更新前的数据。在对数据库中的数据进行更新的过程中,当接收到针对待更新的数据的查询请求时,如果更新数据库的操作已经完成,但是删除缓存中的更新前的数据的操作还未完成,此时,服务器优先从缓存中查找到的数据为更新前的数据。或者,如果删除缓存中的更新前的数据的操作已经完成,但是更新数据库的操作还未完成,此时,服务器在从缓存中查询数据无果之后,将从数据库中获取数据,服务器最终获取的数据同样是更新前的数据。
在上述对数据进行更新的过程中,服务器如果进行数据查询,由于服务器的缓存和数据库中存储的数据可能不一致,这样将导致服务器获取到的数据可能是当前需要的数据。
发明内容
本申请实施例提供了一种数据处理方法、装置及计算机存储介质,可以保证获取到到的数据是最近更新的数据。所述技术方案如下:
一方面,提供了一种数据处理方法,所述方法包括:
接收携带数据标识的数据处理请求,所述数据处理请求包括数据更新请求和数据查询请求中的任一个;
根据所述数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行,所述多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求;
根据所述数据标识,从选择的进程启动的多个内存队列中选择一个内存队列;
将所述数据处理请求添加至选择的内存队列,所述选择的内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的。
在一种可能的示例中,所述数据处理请求包括数据更新请求;
所述将所述数据处理请求添加至选择的内存队列,包括:
根据所述数据更新请求,生成删除缓存操作请求和更新数据库操作请求;
将所述删除缓存操作请求和所述更新数据库操作请求依次添加至所述选择的内存队列。
在一种可能的示例中,所述数据处理请求包括数据查询请求;
所述将所述数据处理请求添加至选择的内存队列,包括:
从服务器的缓存中的查找与所述数据标识对应的数据;
当查找到与所述数据标识对应的数据时,将所述数据查询请求添加至所述选择的内存队列。
在一种可能的示例中,所述从服务器的缓存中的查找与所述数据标识对应的数据,包括:
当没有查找到与所述数据标识对应的数据时,根据所述查询请求,生成更新缓存操作请求和读取数据操作请求;
将所述更新缓存操作请求和所述读取数据操作请求依次添加至所述选择的内存队列。
在一种可能的示例中,所述根据所述数据标识,从多个进程中选择一个进程,包括:
对所述数据标识进行哈希求值,得到所述数据标识的哈希值;
根据所述哈希值从所述多个进程中选择一个进程,所述多个进程与多个哈希值一一对应。
在一种可能的示例中,所述根据所述待处理数据的标识,从选择的进程启动的多个内存队列中选择一个内存队列,包括:
将所述数据标识对所述哈希值进行取余;
根据取余后的数值从所述多个内存队列中选择一个内存队列。
另一方面、提供了一种数据处理装置,所述装置包括:
接收模块,用于接收携带数据标识的数据处理请求,所述数据处理请求包括数据更新请求和数据查询请求中的任一个;
第一选择模块,用于根据所述数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行,所述多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求;
第二选择模块,用于根据所述数据标识,从选择的进程启动的多个内存队列中选择一个内存队列;
添加模块,用于将所述数据处理请求添加至选择的内存队列,所述选择的内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的。
在一种可能的示例中,所述数据处理请求包括数据更新请求;
所述添加模块,具体用于:
根据所述数据更新请求,生成删除缓存操作请求和更新数据库操作请求;
将所述删除缓存操作请求和所述更新数据库操作请求依次添加至所述选择的内存队列。
在一种可能的示例中,所述数据处理请求包括数据查询请求;
所述添加模块,具体用于:
从服务器的缓存中的查找与所述数据标识对应的数据;
当查找到与所述数据标识对应的数据时,将所述数据查询请求添加至所述选择的内存队列。
在一种可能的示例中,所述添加模块,还具体用于:
当没有查找到与所述数据标识对应的数据时,根据所述查询请求,生成更新缓存操作请求和读取数据操作请求;
将所述更新缓存操作请求和所述读取数据操作请求依次添加至所述选择的内存队列。
在一种可能的示例中,所述第一选择模块,具体用于:
对所述数据标识进行哈希求值,得到所述数据标识的哈希值;
根据所述哈希值从所述多个进程中选择一个进程,所述多个进程与多个哈希值一一对应。
在一种可能的示例中,所述第二选择模块,具体用于:
将所述数据标识对所述哈希值进行取余;
根据取余后的数值从所述多个内存队列中选择一个内存队列。
另一方面、提供了一种数据处理装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任一数据处理方法所述的步骤。
另一方面、提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述任一数据处理方法所述的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行实现上述任一数据处理方法所述的步骤。
本申请实施例提供的技术方案带来的有益效果是:
在本申请中,在接收到携带数据标识的数据处理请求时,不管该数据处理请求为数据更新请求还是数据查询请求,均根据该数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行。由于每个进程启动有一个或多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求,因此,可以根据该数据标识继续从选择的进程启动的多个内存队列中选择一个内存队列,并将数据处理请求添加至选择的内存队列中。由此可知,在本申请中,针对同一数据的所有数据处理请求均被添加至同一个内存队列中了,而内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的,因此,在接收到数据更新请求之后,即使接收到针对同一数据的数据查询请求,由于内存队列中该数据查询请求位于数据更新请求的后面,因此在该数据更新请求未被处理完成之前,该数据查询请求将不会被处理,只有在该数据更新请求处理完成之后,该数据查询请求才会被处理,如此可以保证基于数据查询请求获取的数据是更新后的数据。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理方法流程图。
图2是本申请实施例提供的一种数据处理架构示意图。
图3是本申请实施例提供的一种数据处理装置示意图。
图4是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行解释说明之前,先对本申请实施例涉及的应用场景进行解释说明。由于缓存的响应速度要远远大于数据库的响应速度,因此,将数据库中的热点数据备份至缓存之后,服务器在访问热点数据时,便可直接从缓存中访问该热点数据。只有在访问非热点数据时,才需要从数据库中访问。从而提高了服务器访问数据的整体速度。本申请实施例提供的数据处理方法就应用于对服务器同时配置缓存和数据库的场景中。当然,也可以应用于其他同时配置缓存和数据库的场景中,比如,可以应用于配置多级存储介质的终端中,本申请对此不作具体限定。
图1是本申请实施例提供的一种数据处理方法流程图,如图1所示,该方法包括如下几个步骤:
步骤101:接收携带数据标识的数据处理请求,数据处理请求包括数据更新请求和数据查询请求中的任一个。
在本申请实施例中,为了保证从服务器在更新数据之后基于数据查询请求获取的数据是更新之后的数据,对于任何数据处理器请求,不管该数据处理请求为数据更新请求还是数据查询请求,均通过下述步骤102至步骤104将该数据处理请求添加至内存队列中。
数据标识用于区分不同用户的数据,该数据标识可以为该数据所属的用户的标识。比如,对于直播过程中的任一用户,该用户在直播过程中产生一些数据,其他用户可以对该用户的数据进行访问。如此,可以采用每个用户的直播账号来区分不同用户的数据。
步骤102:根据该数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行,多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求。
由于不同的进程之间可以并行处理,因此,在本申请实施例中,预先配置有多个线程,用于同时处理不同的数据处理请求,从而提高服务器处理数据的速度。进一步地,为了使得携带数据标识相同的数据处理请求由同一进程执行,在接收到携带数据标识的数据处理请求时,需要先根据该数据标识从多个进程中选择一个进程。
需要说明的是,在本申请实施例中,携带同一数据标识的数据处理请求由同一进程处理。而一个进程是可以处理与多个不同数据标识分别对应的数据处理请求的。比如,携带数据标识A的数据处理请求均有线程一执行,携带数据标识B的数据处理请求也可以均有线程一执行,只需保证携带同一数据标识的数据处理请求由同一进程处理即可。
因此,在一种可能的实现方式中,步骤102的实现方式可以为:对该数据标识进行哈希求值,得到数据标识的哈希值;根据该哈希值从多个进程中选择一个进程,多个进程与多个哈希值一一对应。
由于哈希计算具有这样的特点:每个数据存在唯一对应的哈希值,但是不同的数据可以对应同一个哈希值。因此,在通过上述实现方式从多个进程中选择一个进程时,便可实现同一数据标识的数据处理请求由同一进程处理,而同一进程可以处理不同的数据标识的数据处理请求。
另外,为了保证针对同一数据标识的数据处理请求按照先后顺序依次执行,每个线程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求。也即是,每个内存队列对应一个数据标识。比如,携带数据标识A、数据标识B的数据处理请求均有进程一处理,具体地,将携带数据标识A的数据处理器请求与内存队列一对应,将携带数据标识B的数据处理器请求与内存队列二对应。
步骤103:根据该数据标识,从选择的进程启动的多个内存队列中选择一个内存队列。
基于步骤102可知,多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求。因此,在选择出进程之后,还可以根据该数据标识,从选择的进程启动的多个内存队列中继续选择一个内存队列。
基于步骤102可知,可以通过哈希计算的方式选择进程,因此,步骤103的实现方式可以为:将数据标识对哈希值进行取余;根据取余后的数值从多个内存队列中选择一个内存队列。虽然不同的数据标识可以对应同一哈希值,但是对应同一哈希值的不同的数据标识在对该哈希值取余后的数值肯定是不同的,因此,便可将内存队列和对哈希值取余后的数值对应起来,以便于步骤103中根据该数据标识选择一个内存队列。
步骤104:将该数据处理请求添加至选择的内存队列,选择的内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的。
在通过步骤103选择出内存队列之后,便可根据步骤104将该数据处理请求添加至选择的内存队列。
在本申请实施例中,每个线程在启动多个内存队列之后,还可以继续启动与多个内存对应一一对应的多个消费线程,以使每个消费线程并行地处理各自对应的内存队列中的数据处理请求。进一步提高了服务器处理数据的速度。
每个消费线程按照添加的时间从早到晚的顺序依次处理对应的内存队列中的数据处理请求。通过步骤102和步骤103可知,每个消费线程处理的是同一数据标识的数据处理请求。不同数据标识的数据处理请求由不同的消费线程处理。
另外,对于同时配置数据库和缓存的的服务器,更新数据的过程包括两个操作,一个是更新数据库的操作,一个是删除缓存的操作。因此,如果步骤101中的数据处理请求为数据更新请求时,步骤104中将数据处理请求添加至选择的内存队列的实现方式可以为:根据该数据更新请求,生成删除缓存操作请求和更新数据库操作请求;将删除缓存操作请求和更新数据库操作请求依次添加至选择的内存队列。
将删除缓存操作请求和更新数据库操作请求依次添加至选择的内存队列是指,将删除缓存操作请求放置在更新数据库操作请求的前面,以使消费线程先执行删除缓存操作,再执行更新数据库的操作。
另外,对于同时配置数据库和缓存的的服务器,服务器查询数据时通常是先查询缓存再查询数据库的,因此,如果步骤101中的数据处理请求为数据查询请求时,步骤104中将数据处理请求添加至选择的内存队列的实现方式可以为:从服务器的缓存中的查找与数据标识对应的数据;当查找到与数据标识对应的数据时,将数据查询请求添加至选择的内存队列。
相应地,当没有查找到与数据标识对应的数据时,根据查询请求,生成更新缓存操作请求和读取数据操作请求;将更新缓存操作请求和读取数据操作请求依次添加至选择的内存队列。
也即是,在本申请实施例中,如果步骤101中的数据处理请求为数据查询请求时,如果缓存中没有该数据标识对应的数据,为了便于后续读取该数据标识对应数据,可以在此次查询数据时,先将该数据标识对应的数据备份至缓存。
上述是将更新缓存操作请求和读取数据操作请求依次添加至选择的内存队列,也可以将读取数据操作请求和更新缓存操作请求依次添加至选择的内存队列,在此不做具体限定。
可选地,如果步骤101中的数据处理请求为数据查询请求,也可以直接将该数据查询请求添加到内存队列,当消费线程消费到该数据查询请求时,可以从服务器的缓存中的查找与数据标识对应的数据;当查找到与数据标识对应的数据时获取该数据。如果没有查找到,则从数据库中获取该数据。
图2是本申请实施提供的一种数据处理架构示意图。如图2所示,当服务器接收到数据处理请求时,服务器根据该数据标识从多个进程中选择一个进程,在选择的进程内,该进程包括多个内存队列,每个内存队列由一个消费线程来消费。服务器根据该数据标识继续选择一个内存队列,然后将该数据处理请求添加至选择的内存队列中。
图2中的服务器可以为nginx代理服务器或路由层上的服务器,用于处理各个用户的数据处理请求。
另外,上述将各个请求添加至内存队列时,可以将请求封装成消息体,然后将封装后的消息体添置至内存队列中,在此不再详述。
下面举例说明本申请实施例提供的数据处理方法的技术效果:
假设用户A和用户B都要对同一用户C的数据进行操作。用户A此时要进行一个数据更新的操作,会将删除缓存请求和更新数据库操作请求依次放到选择的内存队列里,该内存队列和用户C对应。如果与该内存队列对应的消费线程消费了删除缓存操作请求后,但还未消费更新数据库操作请求,也就是还未进行数据库的更新操作,那么此时缓存数据会是空的。如果此时服务器收到了用户B针对用户C的数据查询请求,服务器查找缓存是空的,则将更新缓存操作请求和读取数据操作请求依次放到该内存队列里,让更新缓存操作请求和读取数据操作请求在该内存队列里积压。等到之前更新数据库操作请求被消费并执行后,积压的更新缓存操作请求和读取数据操作请求就能被消费到,并重新更新了缓存。此时用户B查询拿到的数据是最新的。
由此可知,在本申请实施例中,在接收到携带数据标识的数据处理请求时,不管该数据处理请求为数据更新请求还是数据查询请求,均根据该数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行。由于每个进程启动有一个或多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求,因此,可以根据该数据标识继续从选择的进程启动的多个内存队列中选择一个内存队列,并将数据处理请求添加至选择的内存队列中。由此可知,在本申请实施例中,针对同一数据的所有数据处理请求均被添加至同一个内存队列中了,而内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的,因此,在接收到数据更新请求之后,即使接收到针对同一数据的数据查询请求,由于内存队列中该数据查询请求位于数据更新请求的后面,因此在该数据更新请求未被处理完成之前,该数据查询请求将不会被处理,只有在该数据更新请求处理完成之后,该数据查询请求才会被处理,如此可以保证基于数据查询请求获取的数据是更新后的数据。
图3是本申请实施例提供的一种数据处理装置,该装置300包括:
接收模块301,用于接收携带数据标识的数据处理请求,数据处理请求包括数据更新请求和数据查询请求中的任一个;
第一选择模块302,用于根据数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行,多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求;
第二选择模块303,用于根据数据标识,从选择的进程启动的多个内存队列中选择一个内存队列;
添加模块304,用于将数据处理请求添加至选择的内存队列,选择的内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的。
在一种可能的示例中,数据处理请求包括数据更新请求;
添加模块,具体用于:
根据数据更新请求,生成删除缓存操作请求和更新数据库操作请求;
将删除缓存操作请求和更新数据库操作请求依次添加至选择的内存队列。
在一种可能的示例中,数据处理请求包括数据查询请求;
添加模块,具体用于:
从服务器的缓存中的查找与数据标识对应的数据;
当查找到与数据标识对应的数据时,将数据查询请求添加至选择的内存队列。
在一种可能的示例中,添加模块,还具体用于:
当没有查找到与数据标识对应的数据时,根据查询请求,生成更新缓存操作请求和读取数据操作请求;
将更新缓存操作请求和读取数据操作请求依次添加至选择的内存队列。
在一种可能的示例中,第一选择模块,具体用于:
对数据标识进行哈希求值,得到数据标识的哈希值;
根据哈希值从多个进程中选择一个进程,多个进程与多个哈希值一一对应。
在一种可能的示例中,第二选择模块,具体用于:
将数据标识对哈希值进行取余;
根据取余后的数值从多个内存队列中选择一个内存队列。
在本申请实施例中,在接收到携带数据标识的数据处理请求时,不管该数据处理请求为数据更新请求还是数据查询请求,均根据该数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行。由于每个进程启动有一个或多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求,因此,可以根据该数据标识继续从选择的进程启动的多个内存队列中选择一个内存队列,并将数据处理请求添加至选择的内存队列中。由此可知,在本申请实施例中,针对同一数据的所有数据处理请求均被添加至同一个内存队列中了,而内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的,因此,在接收到数据更新请求之后,即使接收到针对同一数据的数据查询请求,由于内存队列中该数据查询请求位于数据更新请求的后面,因此在该数据更新请求未被处理完成之前,该数据查询请求将不会被处理,只有在该数据更新请求处理完成之后,该数据查询请求才会被处理,如此可以保证基于数据查询请求获取的数据是更新后的数据。
需要说明的是:上述实施例提供的数据处理装置在进行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是根据一示例性实施例示出的一种服务器结构示意图。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器400包括中央处理单元(CPU)401、包括随机存取存储器(RAM)402和只读存储器(ROM)403的***存储器404,以及连接***存储器404和中央处理单元401的***总线405。服务器400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)406,和用于存储操作***413、应用程序414和其他程序模块415的大容量存储设备407。
基本输入/输出***406包括有用于显示信息的显示器408和用于用户输入信息的诸如鼠标、键盘之类的输入设备409。其中显示器408和输入设备409都通过连接到***总线405的输入输出控制器410连接到中央处理单元401。基本输入/输出***406还可以包括输入输出控制器410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器410还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备407通过连接到***总线405的大容量存储控制器(未示出)连接到中央处理单元401。大容量存储设备407及其相关联的计算机可读介质为服务器400提供非易失性存储。也就是说,大容量存储设备407可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的***存储器404和大容量存储设备407可以统称为存储器。
根据本申请的各种实施例,服务器400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器400可以通过连接在***总线405上的网络接口单元411连接到网络412,或者说,也可以使用网络接口单元411来连接到其他类型的网络或远程计算机***(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的数据处理方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述实施例提供的数据处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在服务器上运行时,使得服务器执行上述实施例提供的数据处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (5)

1.一种数据处理方法,其特征在于,所述方法应用于对服务器同时配置缓存和数据库的场景,其中数据库中的热点数据备份至缓存中,服务器访问热点数据时直接从缓存中访问,访问非热点数据时从数据库中访问,所述方法包括:
接收携带数据标识的数据处理请求,所述数据处理请求包括数据更新请求和数据查询请求中的任一个;
根据所述数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行,所述多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求,每个内存队列对应一个数据标识;
将所述数据标识对哈希值进行取余;根据取余后的数值从选择的进程启动的多个内存队列中选择一个内存队列;
将所述数据处理请求添加至选择的内存队列,所述选择的内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的,其中,每个内存队列对应一个消费线程,每个所述消费线程用于处理对应的内存队列中的数据处理请求,每个消费线程处理的是同一个数据标识的数据处理请求;
所述数据处理请求包括数据更新请求时,所述将所述数据处理请求添加至选择的内存队列,包括:
根据所述数据更新请求,生成删除缓存操作请求和更新数据库操作请求;
将所述删除缓存操作请求和所述更新数据库操作请求依次添加至所述选择的内存队列;
所述数据处理请求包括数据查询请求时,所述将所述数据处理请求添加至选择的内存队列,包括:
从服务器的缓存中查找与所述数据标识对应的数据;
当查找到与所述数据标识对应的数据时,将所述数据查询请求添加至所述选择的内存队列;
当没有查找到与所述数据标识对应的数据时,根据所述查询请求,生成更新缓存操作请求和读取数据操作请求;
将所述更新缓存操作请求和所述读取数据操作请求依次添加至所述选择的内存队列。
2.如权利要求1所述的方法,其特征在于,所述根据所述数据标识,从多个进程中选择一个进程,包括:
对所述数据标识进行哈希求值,得到所述数据标识的哈希值;
根据所述哈希值从所述多个进程中选择一个进程,所述多个进程与多个哈希值一一对应。
3.一种数据处理装置,其特征在于,所述装置应用于对服务器同时配置缓存和数据库的场景,其中数据库中的热点数据备份至缓存中,服务器访问热点数据时直接从缓存中访问,访问非热点数据时从数据库中访问,所述装置包括:
接收模块,用于接收携带数据标识的数据处理请求,所述数据处理请求包括数据更新请求和数据查询请求中的任一个;
第一选择模块,用于根据所述数据标识,从多个进程中选择一个进程,以使携带数据标识相同的数据处理请求由同一进程执行,所述多个进程中每个进程启动有多个内存队列,每个内存队列用于处理携带的数据标识相同的数据处理请求,每个内存队列对应一个数据标识;
第二选择模块,用于将所述数据标识对哈希值进行取余;根据取余后的数值从选择的进程启动的多个内存队列中选择一个内存队列;
添加模块,用于将所述数据处理请求添加至选择的内存队列,所述选择的内存队列中的数据处理请求是按照添加的时间从早到晚的顺序依次被处理的,其中,每个内存队列对应一个消费线程,每个所述消费线程用于处理对应的内存队列中的数据处理请求,每个消费线程处理的是同一个数据标识的数据处理请求;
所述数据处理请求包括数据更新请求时,所述添加模块,具体用于:
根据所述数据更新请求,生成删除缓存操作请求和更新数据库操作请求;
将所述删除缓存操作请求和所述更新数据库操作请求依次添加至所述选择的内存队列;
所述数据处理请求包括数据查询请求时,所述添加模块,具体用于:
从服务器的缓存中查找与所述数据标识对应的数据;
当查找到与所述数据标识对应的数据时,将所述数据查询请求添加至所述选择的内存队列;
当没有查找到与所述数据标识对应的数据时,根据所述查询请求,生成更新缓存操作请求和读取数据操作请求;
将所述更新缓存操作请求和所述读取数据操作请求依次添加至所述选择的内存队列。
4.一种数据处理装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述权利要求1至2中的任一项权利要求所述的方法的步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述权利要求1至2中的任一项权利要求所述的方法的步骤。
CN201910718451.1A 2019-08-05 2019-08-05 数据处理方法、装置及计算机存储介质 Active CN110427386B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910718451.1A CN110427386B (zh) 2019-08-05 2019-08-05 数据处理方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910718451.1A CN110427386B (zh) 2019-08-05 2019-08-05 数据处理方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
CN110427386A CN110427386A (zh) 2019-11-08
CN110427386B true CN110427386B (zh) 2023-09-19

Family

ID=68412683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910718451.1A Active CN110427386B (zh) 2019-08-05 2019-08-05 数据处理方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN110427386B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414259A (zh) * 2020-02-10 2020-07-14 北京声智科技有限公司 资源更新方法、***、装置、服务器及存储介质
CN111488366B (zh) * 2020-04-09 2023-08-01 百度在线网络技术(北京)有限公司 关系型数据库更新方法、装置、设备及存储介质
CN111782399B (zh) * 2020-07-03 2023-12-01 北京思特奇信息技术股份有限公司 一种基于udp的配置服务器高效实现的方法
CN112104731B (zh) * 2020-09-11 2022-05-20 北京奇艺世纪科技有限公司 请求处理方法、装置、电子设备和存储介质
CN112364061A (zh) * 2020-11-18 2021-02-12 浪潮云信息技术股份公司 一种基于mysql高并发访问数据库的方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015673A2 (en) * 2010-07-27 2012-02-02 Microsoft Corporation Application instance and query stores
CN103955486A (zh) * 2014-04-14 2014-07-30 五八同城信息技术有限公司 分布式服务***及其数据更新、数据查询的方法
CN106294607A (zh) * 2016-07-29 2017-01-04 北京奇虎科技有限公司 缓存数据的更新方法及更新装置
CN106354851A (zh) * 2016-08-31 2017-01-25 广州市乐商软件科技有限公司 数据缓存方法及装置
CN106874067A (zh) * 2017-01-24 2017-06-20 华南理工大学 基于轻量级虚拟机的并行计算方法、装置及***
CN107368502A (zh) * 2016-05-13 2017-11-21 北京京东尚科信息技术有限公司 信息同步方法及装置
CN107508757A (zh) * 2017-08-15 2017-12-22 网宿科技股份有限公司 多进程负载均衡方法及装置
CN107992517A (zh) * 2017-10-26 2018-05-04 深圳市金立通信设备有限公司 一种数据处理方法、服务器及计算机可读介质
CN108459917A (zh) * 2018-03-15 2018-08-28 欧普照明股份有限公司 一种消息分配部件、消息处理***以及消息分配方法
WO2018169429A1 (en) * 2017-03-17 2018-09-20 Oracle International Corporation Framework for the deployment of event-based applications
CN109710402A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 处理资源获取请求的方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20115269A0 (fi) * 2011-03-18 2011-03-18 Tekla Corp Yhteisesti käytettävän tiedon viivästetty päivittäminen

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012015673A2 (en) * 2010-07-27 2012-02-02 Microsoft Corporation Application instance and query stores
CN103955486A (zh) * 2014-04-14 2014-07-30 五八同城信息技术有限公司 分布式服务***及其数据更新、数据查询的方法
CN107368502A (zh) * 2016-05-13 2017-11-21 北京京东尚科信息技术有限公司 信息同步方法及装置
CN106294607A (zh) * 2016-07-29 2017-01-04 北京奇虎科技有限公司 缓存数据的更新方法及更新装置
CN106354851A (zh) * 2016-08-31 2017-01-25 广州市乐商软件科技有限公司 数据缓存方法及装置
CN106874067A (zh) * 2017-01-24 2017-06-20 华南理工大学 基于轻量级虚拟机的并行计算方法、装置及***
WO2018169429A1 (en) * 2017-03-17 2018-09-20 Oracle International Corporation Framework for the deployment of event-based applications
CN107508757A (zh) * 2017-08-15 2017-12-22 网宿科技股份有限公司 多进程负载均衡方法及装置
CN107992517A (zh) * 2017-10-26 2018-05-04 深圳市金立通信设备有限公司 一种数据处理方法、服务器及计算机可读介质
CN108459917A (zh) * 2018-03-15 2018-08-28 欧普照明股份有限公司 一种消息分配部件、消息处理***以及消息分配方法
CN109710402A (zh) * 2018-12-17 2019-05-03 平安普惠企业管理有限公司 处理资源获取请求的方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FTP搜索引擎数据采集策略的研究;郭立力等;《计算机工程与设计》;20090428(第08期);第1853-1855页 *

Also Published As

Publication number Publication date
CN110427386A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN110427386B (zh) 数据处理方法、装置及计算机存储介质
CN108108463B (zh) 基于时间片调度的同步任务处理方法及装置
CN108228799B (zh) 对象索引信息的存储方法及装置
US11310066B2 (en) Method and apparatus for pushing information
CN109766318B (zh) 文件读取方法及装置
CN109933585B (zh) 数据查询方法和数据查询***
CN111737564A (zh) 一种信息查询方法、装置、设备及介质
CN108154024B (zh) 一种数据检索方法、装置及电子设备
CN112860953A (zh) 图数据库的数据导入方法、装置、设备及存储介质
CN109885729B (zh) 一种显示数据的方法、装置及***
CN109271193B (zh) 一种数据处理方法、装置、设备及存储介质
CN112866339B (zh) 数据传输方法、装置、计算机设备和存储介质
CN111046106A (zh) 缓存数据同步方法、装置、设备及介质
CN102724301B (zh) 云数据库***以及云数据读写处理方法、设备
CN110162395B (zh) 一种内存分配的方法及装置
CN113886496A (zh) 区块链的数据同步方法、装置、计算机设备和存储介质
CN112395337B (zh) 一种数据导出方法和装置
CN111752941B (zh) 一种数据存储、访问方法、装置、服务器及存储介质
CN110515979B (zh) 数据查询方法、装置、设备和存储介质
CN111061557B (zh) 均衡分布式内存数据库负载的方法和装置
CN110765125B (zh) 一种存储数据的方法及装置
CN108345699B (zh) 获取多媒体数据的方法、装置及存储介质
CN112764897B (zh) 任务请求的处理方法、装置、***及计算机可读存储介质
CN112783866B (zh) 数据读取方法、装置、计算机设备和存储介质
CN114637969A (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
TA01 Transfer of patent application right

Effective date of registration: 20210112

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 511446 28th floor, block B1, Wanda Plaza, Wanbo business district, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20191108

Assignee: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000054

Denomination of invention: Data processing method, device and computer storage medium

License type: Common License

Record date: 20210208

EE01 Entry into force of recordation of patent licensing contract
GR01 Patent grant
GR01 Patent grant