CN108829740A - 数据存储方法和装置 - Google Patents

数据存储方法和装置 Download PDF

Info

Publication number
CN108829740A
CN108829740A CN201810503062.2A CN201810503062A CN108829740A CN 108829740 A CN108829740 A CN 108829740A CN 201810503062 A CN201810503062 A CN 201810503062A CN 108829740 A CN108829740 A CN 108829740A
Authority
CN
China
Prior art keywords
data
call number
storage
data object
polling thread
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.)
Granted
Application number
CN201810503062.2A
Other languages
English (en)
Other versions
CN108829740B (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.)
Wuhan village Assistant Technology Co.,Ltd.
Original Assignee
Shook Up (wuhan) Agel Ecommerce 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 Shook Up (wuhan) Agel Ecommerce Ltd filed Critical Shook Up (wuhan) Agel Ecommerce Ltd
Priority to CN201810503062.2A priority Critical patent/CN108829740B/zh
Publication of CN108829740A publication Critical patent/CN108829740A/zh
Application granted granted Critical
Publication of CN108829740B publication Critical patent/CN108829740B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种数据存储方法和装置,该数据存储方法包括获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,并判断该当前索引号是否大于总索引号;若所述当前索引号不大于所述总索引号,则继续判断所述当前索引号的处理状态是否为已处理状态;若所述当前索引号的处理状态为未处理状态,则根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。本发明能够有效实现待存储数据的异步入库,以缓解高并发下的系统存储压力。

Description

数据存储方法和装置
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种数据存储方法和装置。
背景技术
传统的数据入库是基于客户端发出的数据入库请求进行数据对象的存储,而不会考虑执行对待存储的数据对象进行入库操作时是否有实时性要求、是否耗时等问题,且仅会在待存储的数据对象完成入库后才对客户端进行响应。
发明内容
有鉴于此,本发明实施例提供一种数据存储方法和装置,能有效解决上述问题。
本发明较佳实施例提供一种数据存储方法,应用于缓存服务器,所述方法包括:
获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,判断该当前索引号是否大于总索引号;
若所述当前索引号不大于所述总索引号,则继续判断所述当前索引号的处理状态是否为已处理状态;
若所述当前索引号的处理状态为未处理状态,则根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。
进一步地,所述方法还包括:
若所述当前索引号大于所述总索引号,则回退所述当前索引号,并根据资源对象锁对所述第一数据轮询线程执行等待操作直到第二数据轮询线程通知所述第一数据轮询线程存在数据对象需要入库时所述第一数据轮询线程解锁并停止等待操作。
进一步地,根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作的步骤包括:
根据所述当前索引号获取与该当前索引号对应的key;
根据所述key提取与该key对应的数据对象作为待入库数据,并通过所述第一数据轮询线程对所述待入库数据执行入库操作。
进一步地,通过所述第一数据轮询线程对该数据对象执行入库操作的步骤包括:
根据所述数据对象的主键值判断数据库服务器中是否存在与该主键值对应的数据对象;
若存在,则根据所述待入库数据对所述数据库服务器中已经存在的数据对象进行更新入库操作;
若不存在,则对所述待入库数据执行新增入库操作。
进一步地,在执行获取第一数据轮询线程上的当前索引号的步骤之前,所述方法还包括:
创建用于将已缓存的数据对象存入数据库服务器中的第一数据轮询线程,以及用于接收各外部服务器生产的数据对象并进行数据缓存的第二数据轮询线程。
进一步地,所述方法还包括:
通过所述第二数据轮询线程获取各外部服务器生产的数据对象,依次对各数据对象进行索引号设置,并对完成索引号设置的数据对象进行缓存。
本发明实施例还提供一种数据存储装置,应用于缓存服务器,所述装置包括:
索引号获取模块,用于获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,判断该当前索引号是否大于总索引号;
状态判断模块,用于在所述当前索引号不大于所述总索引号时,继续判断所述当前索引号的处理状态是否为已处理状态;
数据入库模块,用于在所述当前索引号的处理状态为未处理状态时,根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。
进一步地,所述装置还包括:
线程锁定模块,用于若所述当前索引号大于所述总索引号,则回退所述当前索引号,并根据资源对象锁对所述第一数据轮询线程执行等待操作直到第二数据轮询线程通知所述第一数据轮询线程存在数据对象需要入库时所述第一数据轮询线程解锁并停止等待操作。
进一步地,所述数据入库模块包括:
key获取单元,用于根据所述当前索引号获取与该当前索引号对应的key;
数据入库单元,用于根据所述key提取与该key对应的数据对象作为待入库数据,并通过所述第一数据轮询线程对所述待入库数据执行入库操作。
进一步地,所述数据入库单元用于根据所述数据对象的主键值判断数据库服务器中是否存在与该主键值对应的数据对象;
若存在,则根据所述待入库数据对所述数据库服务器中已经存在的数据对象进行更新入库操作;
若不存在,则对所述待入库数据执行新增入库操作。
与现有技术相比,本发明实施例提供的数据存储方法和装置,其中,基于缓存技术并采用第一数据轮询线程将缓存服务器中的待入库数据存入数据库服务器,以及采用第二数据轮询线程将有入库需求的数据对象存入缓存服务器中实现对数据对象的异步入库,能够有效解决现有技术中存在的在大数据高并发情况下出现的系统宕机、数据丢失等问题。同时,本发明能够有效实现大数据并发情况下的应用解耦,大幅提升用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的数据存储场景示意图。
图2为图1在所示的缓存服务器的方框结构示意图。
图3为本发明实施例提供的数据存储方法的流程示意图。
图4为图3中所示的步骤S12的子流程示意图。
图5为图4中所示的步骤S121的子流程示意图。
图6为本发明实施例提供的数据存储装置的方框结构示意图。
图7为图6中所示的数据入库模块的方框结构示意图。
图标:10-缓存服务器;100-数据存储装置;110-索引号获取模块;120-状态判断模块;130-数据入库模块;131-key获取单元;132-数据入库单元;140-线程锁定模块;200-存储器;300-存储控制器;400-处理器;20-外部服务器;30-数据库服务器。
具体实施方式
经发明人研究发现,现有的数据存储方法在大数据高并发情况下会导致很多问题,具体如下。
(1)如果系统的实时性要求很高或存在比较耗时的入库操作,同步入库会导致响应慢、请求超时或服务阻塞等问题进而影响用户体验。
(2)大数据高并发情况下的实时入库可能导致数据库连接数耗尽出现异常,使得待存储的数据对象无法入库而被丢弃。
(3)无限制高负荷使用数据库而占用系统计算资源,影响服务器上其他数据库服务或应用。
(4)因数据库服务器30瓶颈而导致相关服务系统宕机,停止响应。
基于现有技术中存在的上述问题,本发明实施例基于缓存技术提出一种数据存储方法和装置,其中采用异步入库的方式解决上述问题。具体地,为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,为本发明实施例提供的数据存储方法的应用场景示意图,该应用场景包括缓存服务器10、外部服务器20和数据库服务器30,所述缓存服务器10能够与所述外部服务器20和所述数据库服务器30进行数据通信。
详细地,所述缓存服务器10用于实现对所述外部服务器20生产的数据对象进行临时存储,如图2所示,为所述缓存服务器10的方框结构示意图,该缓存服务器10包括数据存储装置100、存储器200、存储控制器300以及处理器400。其中,所述存储器200、存储控制器300、处理器400各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件之间通过一条或多条通讯总线或信号线实现电性连接。所述数据存储装置100包括至少一个可以软件或固件的形式存储于所述存储器200中或固化在所述缓存服务器10中的操作系统中的软件功能模块。所述处理器400在所述存储控制器300的控制下访问所述存储器200,以用于执行所述存储器200中存储的可执行模块,例如所述数据存储装置100所包括的软件功能模块及计算机程序等。
可以理解,图2所示的结构仅为示意,所述缓存服务器10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。应理解的是,所述缓存服务器10可以是,但不限于智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobile Internet device,MID)、云服务器、小型机等计算和存储资源等。
所述外部服务器20用于生产数据对象,因此,在本实施例中,所述外部服务器20可以是但不限于智能手机、个人电脑、平板电脑、个人数字助理、移动上网设备等。应注意,本实施例中,所述外部服务器20可以为多个。
所述数据库服务器30用于对临时存储在所述缓存服务器10中的数据对象进行存储,此外,所述数据库服务器30为客户应用提供服务,这些服务是查询、更新、事务管理、索引、高速缓存、查询优化、安全及多用户存取控制等。
进一步地,如图3所示,为本发明实施例提供的数据存储方法的流程示意图,该数据存储方法应用于上述的缓存服务器10,下面将结合图3对所述数据存储方法的具体步骤和流程进行详细阐述。应理解的是,本实施例中给出的数据存储方法不以下面所述的步骤和流程的顺序为限制。
步骤S10,获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,判断该当前索引号是否大于总索引号;
步骤S11,若所述当前索引号不大于所述总索引号,则继续判断所述当前索引号的处理状态是否为已处理状态;
步骤S12,若所述当前索引号的处理状态为未处理状态,则根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。
上述步骤S10-步骤S12中,基于缓存技术,并采用第一数据轮询线程对缓存数据进行消费的设计模式,能够解决在大数据并发情况下出现的存储系统压力过大的问题。同时,本发明基于索引号比对以及处理状态判断的方式,能够有效避免数据重复入库以及相关服务重启后数据丢失导致无法继续入库等问题发生,有效提高用户体验。
详细地,在一个实施例中,在执行步骤S10之前,需要创建用于将已缓存的数据对象存入数据库服务器30中的第一数据轮询线程,以及用于接收各外部服务器20生产的数据对象并进行数据缓存的第二数据轮询线程。
其中,所述第二数据轮询线程用于持续监听轮询所述外部服务器20中是否存在待入库的数据对象,使得在外部服务器20中存在需要入库的数据对象时可以源源不断的将数据对象放入所述缓存服务器10中。具体地,可通过所述第二数据轮询线程获取各外部服务器20生产的数据对象,依次对各数据对象进行索引号设置,以及对完成索引号设置的数据对象进行缓存。其中,作为一种实施方式,在进行索引号设置时,可首先生成一个全局唯一标识作为key,将数据对象作为value存入缓存,并通过自增总索引号,然后以该自增后的总索引号作为key,上述全局唯一标识作为value存入缓存;其中,所述数据对象、索引号、key之间一一对应,以用于后续数据入库时的数据对象查找。
所述第一数据轮询线程用于持续监听轮询所述缓存服务器10中是否缓存有待入库的数据对象,使得缓存服务器10中若存在需要入库的数据对象时可以源源不断的将待入库的数据对象放入所述数据库服务器30中。具体地,所述第一数据轮询线程可根据索引号查询与其对应的key,并根据所述key查询与该key对应的数据对象并对查询到的数据对象执行入库操作。应注意的是,在所述第一数据轮询线程完成一次数据入库并再次进行数据对象入库时,应先进行索引号自增操作,再根据自增后的索引号进行对应key的查询。
本实施例中,通过创建第一数据轮询线程和第二数据轮询线程进行数据的异步入库,可有效避免现有技术中出现的由于对实时性要求很高或存在比较耗时的入库操作时,同步入库会导致响应慢、请求超时或服务阻塞等问题进而影响用户体验的问题,同时,还可避免出现在大数据高并发情况下的实时入库可能导致数据库连接数耗尽出现异常,使得待存储的数据对象无法入库而被丢弃的现象发生。
根据实际需求,在所述缓存服务器10每完成一次步骤S10-步骤S12中描述的数据入库操作后,可对所述当前索引号执行自增操作,并基于自增后的当前索引号重复执行步骤S10-步骤S12以实现对缓存服务器10中缓存的数据对象的持续入库。
另外,在一个实施例中,除上述步骤S10-步骤S12外,所述数据存储方法还可包括:若所述当前索引号大于所述总索引号,则回退所述当前索引号,并根据资源对象锁对所述第一数据轮询线程执行等待操作,直到第二数据轮询线程通知所述第一数据轮询线程缓存服务器10中存在数据对象需要入库时,所述第一数据轮询线程停止等待操作。其中,所述第一数据轮询线程和所述第二数据轮询线程之间通过资源对象锁进行通信,来实现第二数据轮询线程和第一数据轮询线程之间数据对象生产或消费的监听。详细地,所述缓存服务器10中记录一个当前正在处理的索引号和处理状态,若当前处理的索引号大于总索引号或者总索引号为空,即不存在需要异步入库的数据,此时根据资源对象锁,对第一数据轮询线程做wait操作,等待第二数据轮询线程生产数据对象并根据资源对象锁notify(通知)该第一数据轮询线程。
实际实施时,通过资源对象锁实现对所述第一数据轮询线程的锁定,能够有效避免现有技术中出现的无限制高负荷使用数据库服务器30而占用系统计算资源,影响数据库服务器30上其他数据库服务或应用。同时,通过上述设置,还可有效避免现有技术中出现的因数据库服务器30瓶颈而导致相关服务系统宕机,停止响应的问题发生。
进一步地,在一个实施例中,如图4所示,上述步骤S12中根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作的过程可通过步骤S120和步骤S121实现。
步骤S120,根据所述当前索引号获取与该当前索引号对应的key;
步骤S121,根据所述key提取与该key对应的数据对象作为待入库数据,并通过所述第一数据轮询线程对所述待入库数据执行入库操作。
上述步骤S120-步骤S121中,在进行数据对象的查找时通过索引号、key和数据对象之间的对应关系实现,可大幅提高数据对象的查找效率,降低服务器上的计算资源的开销,减轻系统压力。可选地,在一个实施例中,如图5所示,上述步骤S121中给出的通过所述第一数据轮询线程对所述待入库数据执行入库操作可通过步骤S1210-步骤S1212实现,具体如下。
步骤S1210,根据所述数据对象的主键值判断数据库服务器30中是否存在与该主键值对应的数据对象;若存在,则执行步骤S1211,反之,则执行步骤S1212。
步骤S1211,根据所述待入库数据对所述数据库服务器30中已经存在的数据对象进行更新入库操作;
步骤S1212,对所述待入库数据执行新增入库操作。
可以理解的是,在上述步骤S1210-步骤S1212中,所述数据库服务器30中可预设有用于保存已存储数据对象的主键值的数据库表,那么,在对待入库数据进行存储时,为了有效避免数据入库过程中出现的数据重复入库问题,同时提高数据存储效率,可先将待入库数据的主键值与数据库表中的主键值进行匹配,从而得出所述数据库服务器30中是否已经存在该待入库数据。另外,在完成数据对象的入库操作后,可对该数据对象对应的key进行状态设置,如设置为已处理状态等。
进一步地,如图6所示,为本发明实施例中给出的数据存储装置100的方框结构示意图,所述数据存储装置100包括索引号获取模块110、状态判断模块120、数据入库模块130和线程锁定模块140。
所述索引号获取模块110,用于获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,判断该当前索引号是否大于总索引号;本实施例中,关于所述索引号获取模块110的描述具体可参考上述步骤S10的详细描述,也即,所述步骤S10可以由所述索引号获取模块110执行,因而在此不作更多说明。
所述状态判断模块120,用于在所述当前索引号不大于所述总索引号时,继续判断所述当前索引号的处理状态是否为已处理状态;本实施例中,关于所述状态判断模块120的描述具体可参考上述步骤S11的详细描述,也即,所述步骤S11可以由所述状态判断模块120执行,因而在此不作更多说明。
所述数据入库模块130,用于在所述当前索引号的处理状态为未处理状态时,根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。本实施例中,关于所述数据入库模块130的描述具体可参考上述步骤S12的详细描述,也即,所述步骤S12可以由所述数据入库模块130执行,因而在此不作更多说明。可选地,如图7所示,所述数据入库模块130包括key获取单元131和数据入库单元132。
所述key获取单元131,用于根据所述当前索引号获取与该当前索引号对应的key。本实施例中,关于所述key获取单元131的描述具体可参考上述步骤S120的详细描述,也即,所述步骤S120可以由所述key获取单元131执行,因而在此不作更多说明。
所述数据入库单元132,用于根据所述key提取与该key对应的数据对象作为待入库数据,并通过所述第一数据轮询线程对所述待入库数据执行入库操作,以及所述数据入库单元132用于根据所述数据对象的主键值判断数据库服务器30中是否存在与该主键值对应的数据对象;以及在存在与所述主键值对应的数据对象时,根据所述待入库数据对所述数据库服务器30中已经存在的数据对象进行更新入库操作;在不存在与所述主键值对应的数据对象时,所述待入库数据执行新增入库操作。本实施例中,关于所述数据入库单元132的描述具体可参考上述步骤S121的详细描述,也即,所述步骤S121可以由所述数据入库单元132执行,因而在此不作更多说明。
所述线程锁定模块140,用于若所述当前索引号小于所述总索引号,则回退所述当前索引号,并根据资源对象锁对所述第一数据轮询线程执行等待操作直到第二数据轮询线程通知所述第一数据轮询线程存在数据对象需要入库时停止等待操作。本实施例中,关于所述线程锁定模块140的描述具体可参考上述步骤S12的详细描述,也即,所述步骤S12可以由所述线程锁定模块140执行,因而在此不作更多说明。
综上所述,本发明实施例提供的数据存储方法和装置,其中,基于缓存技术并采用第一数据轮询线程将缓存服务器10中的待入库数据存入数据库服务器30,以及采用第二数据轮询线程将有入库需求的数据对象存入缓存服务器10中实现对数据对象的异步入库,能够有效解决现有技术中存在的在大数据高并发情况下出现的系统宕机、数据丢失等问题。同时,本发明能够有效实现大数据并发情况下的应用解耦,大幅提升用户体验。
在本发明的描述中,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的预设数量个实施例的装置、方法和计算机程序产品可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分。所述模块、程序段或代码的一部分包含一个或预设数量个用于实现规定的逻辑功能。
也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据存储方法,其特征在于,应用于缓存服务器,所述方法包括:
获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,判断该当前索引号是否大于总索引号;
若所述当前索引号不大于所述总索引号,则继续判断所述当前索引号的处理状态是否为已处理状态;
若所述当前索引号的处理状态为未处理状态,则根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。
2.根据权利要求1所述的数据存储方法,其特征在于,所述方法还包括:
若所述当前索引号大于所述总索引号,则回退所述当前索引号,并根据资源对象锁对所述第一数据轮询线程执行等待操作直到第二数据轮询线程通知所述第一数据轮询线程存在数据对象需要入库时所述第一数据轮询线程解锁并停止等待操作。
3.根据权利要求1所述的数据存储方法,其特征在于,根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作的步骤包括:
根据所述当前索引号获取与该当前索引号对应的key;
根据所述key提取与该key对应的数据对象作为待入库数据,通过所述第一数据轮询线程对所述待入库数据执行入库操作。
4.根据权利要求3所述的数据存储方法,其特征在于,通过所述第一数据轮询线程对该数据对象执行入库操作的步骤包括:
根据所述数据对象的主键值判断数据库服务器中是否存在与该主键值对应的数据对象;
若存在,则根据所述待入库数据对所述数据库服务器中已经存在的数据对象进行更新入库操作;
若不存在,则对所述待入库数据执行新增入库操作。
5.根据权利要求3所述的数据存储方法,其特征在于,在执行获取第一数据轮询线程上的当前索引号的步骤之前,所述方法还包括:
创建用于将已缓存的数据对象存入数据库服务器中的第一数据轮询线程,以及用于接收各外部服务器生产的数据对象并进行数据缓存的第二数据轮询线程。
6.根据权利要求5所述的数据存储方法,其特征在于,所述方法还包括:
通过所述第二数据轮询线程获取各外部服务器生产的数据对象,依次对各数据对象进行索引号设置,并对完成索引号设置的数据对象进行缓存。
7.一种数据存储装置,其特征在于,应用于缓存服务器,所述装置包括:
索引号获取模块,用于获取第一数据轮询线程上的索引号并对该索引号进行自增,作为当前索引号,判断该当前索引号是否大于总索引号;
状态判断模块,用于在所述当前索引号不大于所述总索引号时,继续判断所述当前索引号的处理状态是否为已处理状态;
数据入库模块,用于在所述当前索引号的处理状态为未处理状态时,根据所述当前索引号提取数据对象并通过所述第一数据轮询线程对该数据对象执行入库操作。
8.根据权利要求7所述的数据存储装置,其特征在于,所述装置还包括:
线程锁定模块,用于若所述当前索引号大于所述总索引号,则回退所述当前索引号,并根据资源对象锁对所述第一数据轮询线程执行等待操作直到第二数据轮询线程通知所述第一数据轮询线程存在数据对象需要入库时所述第一数据轮询线程解锁并停止等待操作。
9.根据权利要求7所述的数据存储装置,其特征在于,所述数据入库模块包括:
key获取单元,用于根据所述当前索引号获取与该当前索引号对应的key;
数据入库单元,用于根据所述key提取与该key对应的数据对象作为待入库数据,并通过所述第一数据轮询线程对所述待入库数据执行入库操作。
10.根据权利要求9所述的数据存储装置,其特征在于,所述数据入库单元用于根据所述数据对象的主键值判断数据库服务器中是否存在与该主键值对应的数据对象;以及在存在与所述主键值对应的数据对象时,根据所述待入库数据对所述数据库服务器中已经存在的数据对象进行更新入库操作;在不存在与所述主键对应的数据对象时,所述待入库数据执行新增入库操作。
CN201810503062.2A 2018-05-23 2018-05-23 数据存储方法和装置 Active CN108829740B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810503062.2A CN108829740B (zh) 2018-05-23 2018-05-23 数据存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810503062.2A CN108829740B (zh) 2018-05-23 2018-05-23 数据存储方法和装置

Publications (2)

Publication Number Publication Date
CN108829740A true CN108829740A (zh) 2018-11-16
CN108829740B CN108829740B (zh) 2021-11-02

Family

ID=64148495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810503062.2A Active CN108829740B (zh) 2018-05-23 2018-05-23 数据存储方法和装置

Country Status (1)

Country Link
CN (1) CN108829740B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800336A (zh) * 2019-01-30 2019-05-24 百度在线网络技术(北京)有限公司 基于键值对存储系统的表格实现方法、装置、设备和介质
CN110046161A (zh) * 2019-03-18 2019-07-23 平安普惠企业管理有限公司 数据写入方法及装置、存储介质、电子设备
CN110442576A (zh) * 2019-07-02 2019-11-12 北京奇艺世纪科技有限公司 数据查询方法、装置、服务器和计算机可读介质
CN112559244A (zh) * 2019-09-25 2021-03-26 北京国双科技有限公司 数据处理方法、装置、电子设备和计算机可读介质
CN113204550A (zh) * 2021-04-29 2021-08-03 湖北央中巨石信息技术有限公司 基于区块链的链上链下同步方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102436380A (zh) * 2011-11-15 2012-05-02 福源立信(北京)科技有限公司 一种stk菜单处理系统及其对菜单的处理方法
CN102567434A (zh) * 2010-12-31 2012-07-11 百度在线网络技术(北京)有限公司 一种数据块处理方法
CN104346347A (zh) * 2013-07-25 2015-02-11 深圳市腾讯计算机系统有限公司 数据存储方法、装置、服务器及系统
CN106874334A (zh) * 2016-08-12 2017-06-20 阿里巴巴集团控股有限公司 一种数据处理方法及装置、资讯处理系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567434A (zh) * 2010-12-31 2012-07-11 百度在线网络技术(北京)有限公司 一种数据块处理方法
CN102436380A (zh) * 2011-11-15 2012-05-02 福源立信(北京)科技有限公司 一种stk菜单处理系统及其对菜单的处理方法
CN104346347A (zh) * 2013-07-25 2015-02-11 深圳市腾讯计算机系统有限公司 数据存储方法、装置、服务器及系统
CN106874334A (zh) * 2016-08-12 2017-06-20 阿里巴巴集团控股有限公司 一种数据处理方法及装置、资讯处理系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800336A (zh) * 2019-01-30 2019-05-24 百度在线网络技术(北京)有限公司 基于键值对存储系统的表格实现方法、装置、设备和介质
CN110046161A (zh) * 2019-03-18 2019-07-23 平安普惠企业管理有限公司 数据写入方法及装置、存储介质、电子设备
CN110442576A (zh) * 2019-07-02 2019-11-12 北京奇艺世纪科技有限公司 数据查询方法、装置、服务器和计算机可读介质
CN112559244A (zh) * 2019-09-25 2021-03-26 北京国双科技有限公司 数据处理方法、装置、电子设备和计算机可读介质
CN113204550A (zh) * 2021-04-29 2021-08-03 湖北央中巨石信息技术有限公司 基于区块链的链上链下同步方法

Also Published As

Publication number Publication date
CN108829740B (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
CN108829740A (zh) 数据存储方法和装置
US11593337B2 (en) Data processing method, device, and a storage medium
US6339771B1 (en) Method and system for managing connections to a database management system
CN109783229A (zh) 线程资源分配的方法及装置
CN107526645B (zh) 一种通信优化方法及系统
CN105824957A (zh) 分布式内存列式数据库的查询引擎系统及查询方法
CN108536705A (zh) 数据库系统中对象的编码及运算方法与数据库服务器
CN104731956A (zh) 同步数据的方法、系统及相关数据库
CN103077070B (zh) 云计算管理系统以及云计算系统的管理方法
CN110399383A (zh) 应用于服务器的数据处理方法、装置、计算设备、介质
CN104317957B (zh) 一种报表处理的开放平台、系统及报表处理方法
CN106354729A (zh) 一种图数据处理方法、装置和系统
CN106911782A (zh) 一种数据读取方法及装置
CN104252501A (zh) 一种执行数据库操作命令的计算设备和方法
DE202014010885U1 (de) Beschleunigung basierend auf zwischengespeicherte Flüsse
WO2023197864A1 (zh) 一种调用拓扑图生成方法及装置
CN107977504A (zh) 一种非对称堆芯燃料管理计算方法、装置及终端设备
CN108595121A (zh) 数据存储方法和装置
CN109889406A (zh) 用于管理网络连接的方法、装置、设备和存储介质
CN103645959A (zh) 电信实时系统多进程共享内存池交互组件和方法
CN112948025A (zh) 数据加载方法、装置及存储介质、计算设备、计算系统
CN106776810A (zh) 一种大数据的数据处理系统及方法
CN110674173A (zh) 一种风控云上的数据缓存的方法和系统
CN110879753A (zh) 基于自动化集群资源管理的gpu加速性能优化方法和系统
CN111046077A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 430205 room 503-507, Zhongchuang Building 1, No. 2, DARUI Road, Guandong Industrial Park, Donghu New Technology Development Zone, Wuhan, Hubei Province

Patentee after: Wuhan village Assistant Technology Co.,Ltd.

Address before: 430000 room 503-510, 5 / F, Zhongchuang building, No. 2, DARUI Road, Guandong Industrial Park, Donghu New Technology Development Zone, Wuhan, Hubei Province

Patentee before: YAOLEGOU (WUHAN) E-COMMERCE Co.,Ltd.

CP03 Change of name, title or address