CN107832401B - 数据库数据访问方法、系统、装置及计算机可读存储介质 - Google Patents
数据库数据访问方法、系统、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107832401B CN107832401B CN201711059508.9A CN201711059508A CN107832401B CN 107832401 B CN107832401 B CN 107832401B CN 201711059508 A CN201711059508 A CN 201711059508A CN 107832401 B CN107832401 B CN 107832401B
- Authority
- CN
- China
- Prior art keywords
- target
- data
- data record
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- 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
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库数据访问方法、系统、装置及计算机可读存储介质,包括:在分布式缓存中的目标数据队列中查询与访问请求对应的目标行数据记录;查询到目标行数据记录,依据访问请求和与目标行数据记录对应的目标行数据记录块,生成保存有与访问请求对应的索引标记号码的临时索引标记数组;利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果;利用比对结果同步分布式缓存和数据库中的数据;本申请预先在分布式缓存中缓存高访问性数据,并将行数据记录进行切分,为每个行数据记录块分配一个相应的索引标记,提高缓存中访问请求的命中率,避免访问请求直接查询数据库的错误,分散数据高访问性热度。
Description
技术领域
本发明涉及集群技术领域,特别涉及一种数据库数据访问方法、系统、装置及计算机可读存储介质。
背景技术
随着科学技术的飞速发展和互联网产品在日常生活中的日益渗透,存储在数据库中的数据往往能够得到海量请求访问。对于某一时段的高访问性实时热点数据,当大量网络请求同时并发,这就需要应用系统自身具备良好的容灾能力和海量数据请求承载能力。特别地,当大批量用户请求更新应用数据库中的同一数据记录时,数据如果不设置任何限流或者加锁操作往往会导致后续请求全部排队等待前面的数据更新处理完成,占用大量数据库链接,一旦链接占满,用户请求超时、应用层链接耗尽甚至服务器宕机等各种问题接踵而至。
目前,高访问性实时热点数据更新方式主要集中在对前端业务层处理、应用层处理和数据库层处理三个方面,主要目的在于限制数据访问流量、减少数据库读写次数及提高数据库并发能力等方面;而减少数据库读写操作提高数据库并发能力的技术手段主要集中于在数据库上层增加缓存层,将高频访问数据缓存处理,并且每隔一定时间间隔异步更新数据库,该类方法读写速度快,但缓存数据不稳定,容易出现缓存丢失、穿透缓存直接命中数据库等异常,导致应用系统不稳定、数据不一致及数据异常等现象。
因此,如何提供一种命中率高,能够分散数据高访问性热度,减轻数据库更新时超负荷问题和请求超时问题的方法是当前需要研究解决的。
发明内容
有鉴于此,本发明的目的在于提供一种数据库数据访问方法、系统、装置及计算机可读存储介质,以提高缓存和数据库的命中率,分散数据高访问性热度,减轻数据库更新时超负荷问题和请求超时问题。其具体方案如下:
一种数据库数据访问方法,包括:
接收用户的访问请求,在分布式缓存中的目标数据队列中查询与所述访问请求对应的目标行数据记录;
如果查询到所述目标行数据记录,则依据所述访问请求和与所述目标行数据记录对应的目标行数据记录块,生成保存有与所述访问请求对应的索引标记号码的临时索引标记数组;
利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果;
利用所述比对结果同步所述分布式缓存和数据库中的数据;
其中,所述分布式缓存中所述目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新所述目标数据队列,从所述目标数据队列中选取未拆分的所述目标行数据记录,将所述目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与所述目标行数据记录对应的所有行数据记录块的索引标记保存为所述目标索引标记数组;
其中,所述高访问行数据记录集更新数据队列期间对所述目标数据队列加锁,更新结束后解锁。
可选的,所述利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果的过程,包括:
利用所述目标索引标记数组与所述临时索引标记数组作差,得到所述临时索引标记数组与所述目标索引标记数组的差集索引标记结果集。
可选的,所述利用所述比对结果同步所述分布式缓存和数据库中的数据的过程,包括:
判断所述索引标记结果集中是否保存有索引标记号码;
如果是,则利用所述索引标记结果集中的索引标记号码同步所述分布式缓存和所述数据库中的数据。
可选的,所述利用所述索引标记结果集中的索引标记号码同步所述分布式缓存和所述数据库中的数据的过程,包括:
利用所述索引标记结果集中的索引标记号码查找到相应的行数据记录块,利用行数据记录块同步所述分布式缓存和所述数据库中的数据。
可选的,所述利用行数据记录块同步分布式缓存和数据库中的数据的过程,包括:
利用与索引标记号码对应的行数据记录块,更新所述数据库中相应的数据;
判断所述数据库是否更新完成;
如果否,则在所述数据库中查询到与索引标记号码相对应的行数据记录块,得到保存有所有行数据记录块的全量信息表;
判断所述全量信息表中的每个行数据记录块是否为空;
如果否,则将所述全量信息表中的数据重新划分,得到新的行数据记录块,再次更新所述数据库。
可选的,所述接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新数据队列的过程,包括:
定时接收所述前端生成的所述高访问行数据记录集,利用LRU算法更新所述目标数据队列。
本发明还公开了一种数据库数据访问系统,包括:
数据记录查询模块,用于接收用户的访问请求,在分布式缓存中的目标数据队列中查询与所述访问请求对应的目标行数据记录;
临时索引生成模块,用于如果查询到所述目标行数据记录,则依据所述访问请求和与所述目标行数据记录对应的目标行数据记录块,生成保存有与所述访问请求对应的索引标记号码的临时索引标记数组;
索引标记比对模块,用于利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果;
数据同步模块,用于利用所述比对结果同步所述分布式缓存和数据库中的数据;
其中,所述分布式缓存中所述目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新所述母爱目标数据队列,从所述目标数据队列中选取未拆分的所述目标行数据记录,将所述目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与所述目标行数据记录对应的所有行数据记录块的索引标记保存为所述目标索引标记数组;
其中,所述高访问行数据记录集更新数据队列期间对所述目标数据队列加锁,更新结束后解锁。
可选的,所述索引标记比对模块,具体用于利用所述目标索引标记数组与所述临时索引标记数组作差,得到所述临时索引标记数组与所述目标索引标记数组的差集索引标记结果集。
本发明还公开了一种数据库数据访问装置,包括:
存储器,用于存储指令;其中,所述指令包括接收用户的访问请求,在分布式缓存中的目标数据队列中查询与所述访问请求对应的目标行数据记录;如果查询到所述目标行数据记录,则依据所述访问请求和与所述目标行数据记录对应的目标行数据记录块,生成保存有与所述访问请求对应的索引标记号码的临时索引标记数组;利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果;利用所述比对结果同步所述分布式缓存和数据库中的数据;其中,所述分布式缓存中所述目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新所述目标数据队列,从所述目标数据队列中选取未拆分的所述目标行数据记录,将所述目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与所述目标行数据记录对应的所有行数据记录块的索引标记保存为所述目标索引标记数组;其中,所述高访问行数据记录集更新数据队列期间对所述目标数据队列加锁,更新结束后解锁;
处理器,用于执行所述存储器中的指令。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据库数据访问方法的步骤。
本发明中,数据库数据访问方法,包括:接收用户的访问请求,在分布式缓存中的目标数据队列中查询与访问请求对应的目标行数据记录;如果查询到目标行数据记录,则依据访问请求和与目标行数据记录对应的目标行数据记录块,生成保存有与访问请求对应的索引标记号码的临时索引标记数组;利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果;利用比对结果同步分布式缓存和数据库中的数据;其中,分布式缓存中目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新目标数据队列,从目标数据队列中选取未拆分的目标行数据记录,将目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与目标行数据记录对应的所有行数据记录块的索引标记保存为目标索引标记数组;其中,高访问行数据记录集更新数据队列期间对目标数据队列加锁,更新结束后解锁。
本发明预先在分布式缓存中缓存高访问性数据和其高访问行数据记录集,为能够在分布式缓存中直接访问数据做了保证,并将行数据记录进行切分,得到与行数据记录块对应的N个行数据记录块,为每个行数据记录块分配一个相应的索引标记,提高缓存中访问请求的命中率,避免访问请求绕开缓存直接查询数据库的错误,在接收用户的访问请求后,通过在分布式缓存中查询与访问请求对应的目标行数据记录,判断缓存中是否保存有目标数据,如果是,则生成保存有与目标行数据记录块对应的索引标记号码的临时标记索引数组,并利用预先保存有与目标行数据记录对应的所有行数据记录块的索引标记的目标索引标记数组进行比对,得到比对结果,最后利用比对结果同步分布式缓存和数据库中的数据,完成用户的访问请求,并保证分布式缓存和数据库的同步,从而提高缓存和数据库的命中率,分散数据高访问性热度,减轻数据库更新时超负荷问题和请求超时问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种数据库数据访问方法流程示意图;
图2为本发明实施例公开的一种数据库数据访问系统结构示意图;
图3为本发明实施例公开的一种数据库数据访问装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据库数据访问方法,参见图1所示,该方法包括:
步骤S11:接收用户的访问请求,在分布式缓存中的目标数据队列中查询与访问请求对应的目标行数据记录。
具体的,为了提高访问速度,将大量的行数据记录缓存到分布式缓存中,因此,用户发送访问数据的请求后,利用访问请求直接在分布式缓存中的目标行数据队列中查询对应的目标行数据记录,从而减少对数据库的访问次数,减轻数据库的负荷。
步骤S12:如果查询到目标行数据记录,则依据访问请求和目标行数据记录,生成保存有与目标行数据记录对应的索引标记号码的临时索引标记数组。
具体的,如果查询到目标行数据记录,则依据访问请求所需的数据量和与目标行数据记录对应的目标行数据记录块的索引标记号码,生成保存有与访问请求对应的索引标记号码的临时索引标记数组。
其中,临时索引标记数组中仅保存有与目标行数据块对应的索引标记号码,通过临时索引标记数组可以准确地通过拥有相同且与索引标记号码对应的目标行数据记录块快速的访问目标数据。
可以理解的是,如果在分布式缓存中未查询到目标行数据记录,则利用用户的访问请求直接前往数据库中查找相应的目标数据。
步骤S13:利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果。
具体的,利用临时索引标记数组中保存的与目标行数据块对应的索引标记号码与目标索引标记数组中的索引标记号码进行比对,通过相对应的索引标记号码,得到比对结果,查找到相应的目标行数据记录块,完成用户对目标数据的访问,例如,利用临时索引标记数组中保存有1、6、9三个与目标行数据块对应的索引标记号码,目标索引标记数组中则保存有与目标行数据记录对应的所有行数据记录块的1至10十个索引标记号码,临时索引标记数组与目标索引标记数组进行比对,查找到目标索引标记数组中1、6、9三个与目标行数据块对应的索引标记号码,从而查找到目标行数据块,完成用户对目标数据的访问。
步骤S14:利用比对结果同步分布式缓存和数据库中的数据。
其中,分布式缓存中索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新目标数据队列,从目标数据队列中选取未拆分的行数据记录,将行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与行数据记录对应的所有行数据记录块的索引标记均保存在索引标记数组中,N为正整数;
其中,高访问行数据记录集更新目标数据队列期间对目标数据队列加锁,更新结束后解锁。
进一步的,高访问行数据记录可以通过用户在前端的历史访问记录生成,通过统计用户对数据的访问频率,生成高访问行数据记录,当然,高访问行数据记录还可以为推荐引擎进行推荐得到的,预设规则可以为按照数据的属性余量进行划分,例如,行数据记录为一种手机,则可以按照一个手机对应一个行数据记录块的规则进行划分,当然,根据实际应用情况也可以进行相应的调整,例如,两个手机对应一个行数据记录块。
可见,本发明实施例预先在分布式缓存中缓存高访问性数据和其高访问行数据记录集,为能够在分布式缓存中直接访问数据做了保证,并将行数据记录进行切分,得到与行数据记录块对应的N个行数据记录块,为每个行数据记录块分配一个相应的索引标记,提高缓存中访问请求的命中率,避免访问请求绕开缓存直接查询数据库的错误,在接收用户的访问请求后,通过在分布式缓存中查询与访问请求对应的目标行数据记录,判断缓存中是否保存有目标数据,如果是,则生成保存有与目标行数据记录块对应的索引标记号码的临时标记索引数组,并利用预先保存有与目标行数据记录对应的所有行数据记录块的索引标记的目标索引标记数组进行比对,得到比对结果,最后利用比对结果同步分布式缓存和数据库中的数据,完成用户的访问请求,并保证分布式缓存和数据库的同步,从而提高缓存和数据库的命中率,分散数据高访问性热度,减轻数据库更新时超负荷问题和请求超时问题。
本发明实施例公开了一种具体的数据库数据访问方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
上一实施中利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果的过程,可以具体为利用目标索引标记数组与临时索引标记数组作差,得到临时索引标记数组与目标索引标记数组的差集索引标记结果集。
例如,临时索引标记数组中保存有1、6、9三个与目标行数据块对应的索引标记号码,目标索引标记数组中保存有所有行数据记录块的1至10十个索引标记号码,目标索引标记数组与临时索引标记数组作差,得到保存有2、3、4、5、7、8、10七个索引标记号码的索引标记结果集。
上一实施中,利用比对结果同步分布式缓存和数据库中的数据的具体过程,可以包括步骤S21至步骤S23:
步骤S21:判断索引标记结果集中是否保存有索引标记号码。
具体的,通过判断索引标记结果集中是否保存有索引标记号码,来判断目标数据是否被完全消费,分布式缓存中是否还有剩余。
步骤S22:如果是,则利用索引标记结果集中的索引标记号码同步分布式缓存和数据库中的数据。
具体的,如果索引标记结果集中还保存有索引标记号码,则利用索引标记结果集中的索引标记号码同步分布式缓存和数据库中的数据,利用随机算法,逐个通过索引标记结果集中保存的索引标记号码,查找到相应的行数据记录块,并依此更新数据库中的数据,从而保持分布式缓存和数据库的同步。
步骤S23:如果否,则利用比对后的目标数据队列同步分布式缓存和数据库中的数据。
具体的,如果索引标记结果集中未剩余索引标记号码,表明分布式缓存中目标数据被全部消费,没有剩余,因此,目标数据块,目标数据记录均将被移除,所以利用比对后的目标数据队列中记载的行数据记录同步分布式缓存和数据库中的数据,从而保证分布式缓存和数据库中的数据一致。
进一步的,上述利用行数据记录块同步分布式缓存和数据库中的数据的具体过程,可以包括步骤S24至步骤S29;其中,
步骤S24:利用与索引标记号码对应的行数据记录块,更新数据库中相应的数据。
具体的,分布式缓存中的数据与数据库中的数据保持一致,因此,分布式缓存中保存的行数据记录块和与其对应的数据同样保存在在数据库中,因此,可以通过分布式缓存中的行数据记录块确认数据库中相应的行数据记录块,从而实现数据库与分布式缓存的数据更新。
需要说明的是,如果数据库中记载的行数据记录块,无法在分布式缓存中查找到相应的行数据记录块,则表明该行数据记录块被消耗,数据已被使用,因此从数据库中移除该数据。
步骤S25:判断数据库是否更新完成。
具体的,为提高系统的可靠性,判断数据库是否更新完成,防止因为一些错误导致数据库更新失败。
步骤S26:如果否,则在数据库中查询到与索引标记号码相对应的行数据记录块,得到保存有所有行数据记录块的全量信息表。
具体的,如果数据库更新失败,则利用分布式缓存中与索引标记号码相对应的行数据记录块,查找到同样的保存在数据库中的行数据记录块,并将数据库中每个行数据记录块记录的数据均保存在全量信息表中,以收集全部数据,为后续更新做准备。
步骤S27:判断全量信息表中的每个行数据记录块是否为空。
具体的,判断全量信息表中的每个行数据记录块是否为空,根据判断结果执行相应的更新操作。
步骤S28:如果否,则将全量信息表中的数据重新划分,得到新的行数据记录块,再次更新数据库。
具体的,如果全量信息表中还保存有数据,则将剩余数据重新划分为多个新的行数据记录块,并再次更新数据库返回步骤S24,其中,重新划分后的行数据记录块对应的数据可能不同,因此,可以优先选择包含数据最多的行数据记录块,作为分布式缓存中优先被消耗的行数据记录块。
步骤S29:如果是,则清除与全量信息表对应的行数据记录块。
具体的,如果全量信息表中没有数据,则清除相应的行数据记录块和行数据记录。
可以理解的是,上一实施例中接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新目标数据队列的过程,可以为定时接收前端生成的高访问行数据记录集,利用LRU(Least Recently Used,最近最少使用)算法更新目标数据队列。
具体的,通过定时接收高访问行数据记录集,可以节约系统耗能,通过LRU算法判断是否需要更新目标数据队列,如果需要更新,则在更新前对目标数据队列加锁,防止更新期间有数据访问请求造成数据出错,利用LRU算法更新目标数据队列,将最新的高访问行数据记录集添加至目标数据队列中,更新完毕后,对目标数据队列解锁。
需要说明的是,当实际应用中采用多线程进行访问时,每个线程内的访问流程都与本发明上述两个实施例中的过程一致。
相应的,本发明实施例还公开了一种数据库数据访问系统,参见图2所示,该系统包括:
数据记录查询模块11,用于接收用户的访问请求,在分布式缓存中的目标数据队列中查询与访问请求对应的目标行数据记录;
临时索引生成模块12,用于如果查询到目标行数据记录,则依据访问请求和与目标行数据记录对应的目标行数据记录块,生成保存有与访问请求对应的索引标记号码的临时索引标记数组;
索引标记比对模块13,用于利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果;
数据同步模块14,用于利用比对结果同步分布式缓存和数据库中的数据;
其中,分布式缓存中目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新母爱目标数据队列,从目标数据队列中选取未拆分的目标行数据记录,将目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与目标行数据记录对应的所有行数据记录块的索引标记保存为目标索引标记数组,N为正整数;
其中,高访问行数据记录集更新数据队列期间对目标数据队列加锁,更新结束后解锁。
本发明实施例中,上述索引标记比对模块13,具体用于利用目标索引标记数组与临时索引标记数组作差,得到临时索引标记数组与目标索引标记数组的差集索引标记结果集。
上述数据同步模块14,可以具体包括号码判断单元、同步单元、数据库更新单元、更新结果判断单元、全量信息生成单元、全量信息判断单元和数据划分单元;其中,
号码判断单元,用于判断索引标记结果集中是否保存有索引标记号码;
同步单元,用于如果号码判断单元判定索引标记结果集中保存有索引标记号码,则利用索引标记结果集中的索引标记号码同步分布式缓存和数据库中的数据。
上述同步单元,具体用于如果号码判断单元判定索引标记结果集中保存有索引标记号码,则利用索引标记结果集中的索引标记号码查找到相应的行数据记录块,利用行数据记录块同步分布式缓存和数据库中的数据。
数据库更新单元,用于利用与索引标记号码对应的行数据记录块,更新数据库中相应的数据;
更新结果判断单元,用于判断数据库是否更新完成;
全量信息生成单元,用于如果否,则在数据库中查询到与索引标记号码相对应的行数据记录块,得到保存有所有行数据记录块的全量信息表;
全量信息判断单元,用于判断全量信息表中的每个行数据记录块是否为空;
数据划分单元,用于如果否,则将全量信息表中的数据重新划分,得到新的行数据记录块,再次更新数据库。
其中,接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新数据队列的过程,可以为定时接收前端生成的高访问行数据记录集,利用LRU算法更新目标数据队列。
可见,本发明实施例预先在分布式缓存中缓存高访问性数据和其高访问行数据记录集,为能够在分布式缓存中直接访问数据做了保证,并将行数据记录进行切分,得到与行数据记录块对应的N个行数据记录块,为每个行数据记录块分配一个相应的索引标记,提高缓存中访问请求的命中率,避免访问请求绕开缓存直接查询数据库的错误,在接收用户的访问请求后,通过在分布式缓存中查询与访问请求对应的目标行数据记录,判断缓存中是否保存有目标数据,如果是,则生成保存有与目标行数据记录块对应的索引标记号码的临时标记索引数组,并利用预先保存有与目标行数据记录对应的所有行数据记录块的索引标记的目标索引标记数组进行比对,得到比对结果,最后利用比对结果同步分布式缓存和数据库中的数据,完成用户的访问请求,并保证分布式缓存和数据库的同步,从而提高缓存和数据库的命中率,分散数据高访问性热度,减轻数据库更新时超负荷问题和请求超时问题。
本发明实施例还公开了一种数据库数据访问装置,参见图3所示,该装置包括:
存储器21,用于存储指令;其中,指令包括接收用户的访问请求,在分布式缓存中的目标数据队列中查询与访问请求对应的目标行数据记录;如果查询到目标行数据记录,则依据访问请求和与目标行数据记录对应的目标行数据记录块,生成保存有与访问请求对应的索引标记号码的临时索引标记数组;利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果;利用比对结果同步分布式缓存和数据库中的数据;其中,分布式缓存中目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新目标数据队列,从目标数据队列中选取未拆分的目标行数据记录,将目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与目标行数据记录对应的所有行数据记录块的索引标记保存为目标索引标记数组;其中,高访问行数据记录集更新数据队列期间对目标数据队列加锁,更新结束后解锁,N为正整数;
处理器22,用于执行存储器21中的指令。
其中,上述利用临时索引标记数组与目标索引标记数组进行比对,得到比对结果的过程,可以具体为利用目标索引标记数组与临时索引标记数组作差,得到临时索引标记数组与目标索引标记数组的差集索引标记结果集。
上述利用比对结果同步分布式缓存和数据库中的数据的过程,可以包括:
判断索引标记结果集中是否保存有索引标记号码;
如果是,则利用索引标记结果集中的索引标记号码同步分布式缓存和数据库中的数据。
上述利用索引标记结果集中的索引标记号码同步分布式缓存和数据库中的数据的过程,可以具体为利用索引标记结果集中的索引标记号码查找到相应的行数据记录块,利用行数据记录块同步分布式缓存和数据库中的数据。
上述利用行数据记录块同步分布式缓存和数据库中的数据的过程,可以包括:
利用与索引标记号码对应的行数据记录块,更新数据库中相应的数据;
判断数据库是否更新完成;
如果否,则在数据库中查询到与索引标记号码相对应的行数据记录块,得到保存有所有行数据记录块的全量信息表;
判断全量信息表中的每个行数据记录块是否为空;
如果否,则将全量信息表中的数据重新划分,得到新的行数据记录块,再次更新数据库。
上述接收前端生成的高访问行数据记录集,利用高访问行数据记录集更新数据队列的过程,可以具体为定时接收前端生成的高访问行数据记录集,利用LRU算法更新目标数据队列。
本发明实施例还另外公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述实施例中的数据库数据访问方法的步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的一种数据库数据访问方法、系统、装置及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据库数据访问方法,其特征在于,包括:
接收用户的访问请求,在分布式缓存中的目标数据队列中查询与所述访问请求对应的目标行数据记录;
如果查询到所述目标行数据记录,则依据所述访问请求和与所述目标行数据记录对应的目标行数据记录块,生成保存有与所述访问请求对应的索引标记号码的临时索引标记数组;
利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果;
利用所述比对结果同步所述分布式缓存和数据库中的数据;
其中,所述分布式缓存中所述目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新所述目标数据队列,从所述目标数据队列中选取未拆分的所述目标行数据记录,将所述目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与所述目标行数据记录对应的所有行数据记录块的索引标记保存为所述目标索引标记数组,N为正整数;
其中,所述高访问行数据记录集更新数据队列期间对所述目标数据队列加锁,更新结束后解锁。
2.根据权利要求1所述的数据库数据访问方法,其特征在于,所述利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果的过程,包括:
利用所述目标索引标记数组与所述临时索引标记数组作差,得到所述临时索引标记数组与所述目标索引标记数组的差集索引标记结果集。
3.根据权利要求2所述的数据库数据访问方法,其特征在于,所述利用所述比对结果同步所述分布式缓存和数据库中的数据的过程,包括:
判断所述索引标记结果集中是否保存有索引标记号码;
如果是,则利用所述索引标记结果集中的索引标记号码同步所述分布式缓存和所述数据库中的数据。
4.根据权利要求3所述的数据库数据访问方法,其特征在于,所述利用所述索引标记结果集中的索引标记号码同步所述分布式缓存和所述数据库中的数据的过程,包括:
利用所述索引标记结果集中的索引标记号码查找到相应的行数据记录块,利用行数据记录块同步所述分布式缓存和所述数据库中的数据。
5.根据权利要求4所述的数据库数据访问方法,其特征在于,所述利用行数据记录块同步分布式缓存和数据库中的数据的过程,包括:
利用与索引标记号码对应的行数据记录块,更新所述数据库中相应的数据;
判断所述数据库是否更新完成;
如果否,则在所述数据库中查询到与索引标记号码相对应的行数据记录块,得到保存有所有行数据记录块的全量信息表;
判断所述全量信息表中的每个行数据记录块是否为空;
如果否,则将所述全量信息表中的数据重新划分,得到新的行数据记录块,再次更新所述数据库。
6.根据权利要求1至5任一项所述的数据库数据访问方法,其特征在于,所述接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新数据队列的过程,包括:
定时接收所述前端生成的所述高访问行数据记录集,利用LRU算法更新所述目标数据队列。
7.一种数据库数据访问系统,其特征在于,包括:
数据记录查询模块,用于接收用户的访问请求,在分布式缓存中的目标数据队列中查询与所述访问请求对应的目标行数据记录;
临时索引生成模块,用于如果查询到所述目标行数据记录,则依据所述访问请求和与所述目标行数据记录对应的目标行数据记录块,生成保存有与所述访问请求对应的索引标记号码的临时索引标记数组;
索引标记比对模块,用于利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果;
数据同步模块,用于利用所述比对结果同步所述分布式缓存和数据库中的数据;
其中,所述分布式缓存中所述目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新所述目标数据队列,从所述目标数据队列中选取未拆分的所述目标行数据记录,将所述目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与所述目标行数据记录对应的所有行数据记录块的索引标记保存为所述目标索引标记数组,N为正整数;
其中,所述高访问行数据记录集更新数据队列期间对所述目标数据队列加锁,更新结束后解锁。
8.根据权利要求7所述的数据库数据访问系统,其特征在于,所述索引标记比对模块,具体用于利用所述目标索引标记数组与所述临时索引标记数组作差,得到所述临时索引标记数组与所述目标索引标记数组的差集索引标记结果集。
9.一种数据库数据访问装置,其特征在于,包括:
存储器,用于存储指令;其中,所述指令包括接收用户的访问请求,在分布式缓存中的目标数据队列中查询与所述访问请求对应的目标行数据记录;如果查询到所述目标行数据记录,则依据所述访问请求和与所述目标行数据记录对应的目标行数据记录块,生成保存有与所述访问请求对应的索引标记号码的临时索引标记数组;利用所述临时索引标记数组与目标索引标记数组进行比对,得到比对结果;利用所述比对结果同步所述分布式缓存和数据库中的数据;其中,所述分布式缓存中所述目标索引标记数组生成过程包括:接收前端生成的高访问行数据记录集,利用所述高访问行数据记录集更新所述目标数据队列,从所述目标数据队列中选取未拆分的所述目标行数据记录,将所述目标行数据记录按照预设的规则拆分为N个行数据记录块,每个行数据记录块分配一个相应的索引标记,将与所述目标行数据记录对应的所有行数据记录块的索引标记保存为所述目标索引标记数组,N为正整数;其中,所述高访问行数据记录集更新数据队列期间对所述目标数据队列加锁,更新结束后解锁;
处理器,用于执行所述存储器中的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的数据库数据访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711059508.9A CN107832401B (zh) | 2017-11-01 | 2017-11-01 | 数据库数据访问方法、系统、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711059508.9A CN107832401B (zh) | 2017-11-01 | 2017-11-01 | 数据库数据访问方法、系统、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107832401A CN107832401A (zh) | 2018-03-23 |
CN107832401B true CN107832401B (zh) | 2021-07-16 |
Family
ID=61651391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711059508.9A Active CN107832401B (zh) | 2017-11-01 | 2017-11-01 | 数据库数据访问方法、系统、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107832401B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829498B (zh) * | 2018-03-30 | 2022-03-08 | 创新先进技术有限公司 | 业务数据访问方法和装置 |
CN108549725A (zh) * | 2018-04-28 | 2018-09-18 | 北京百度网讯科技有限公司 | 数据库访问控制方法、装置、系统、设备及计算机可读介质 |
CN109040183A (zh) * | 2018-06-27 | 2018-12-18 | 郑州云海信息技术有限公司 | 节点信息获取方法、装置、设备及计算机可读存储介质 |
CN110362505A (zh) * | 2019-07-10 | 2019-10-22 | 政采云有限公司 | 一种使用缓存拦截器进行读写缓存的方法 |
CN110515964A (zh) * | 2019-08-30 | 2019-11-29 | 百度在线网络技术(北京)有限公司 | 一种文件更新方法、装置、电子设备和介质 |
CN110555037B (zh) * | 2019-09-12 | 2020-10-23 | 苏州新希望科技有限公司 | 智慧城市数据共享系统 |
CN112749004B (zh) * | 2019-10-30 | 2023-09-05 | 中国移动通信集团安徽有限公司 | 基于节点访问热度的数据存储方法及装置 |
CN111460129B (zh) * | 2020-03-27 | 2023-08-22 | 泰康保险集团股份有限公司 | 标识生成的方法、装置、电子设备和存储介质 |
CN111488366B (zh) * | 2020-04-09 | 2023-08-01 | 百度在线网络技术(北京)有限公司 | 关系型数据库更新方法、装置、设备及存储介质 |
CN111752945B (zh) * | 2020-05-29 | 2022-07-22 | 南京南瑞继保电气有限公司 | 一种基于容器和层次模型的时序数据库数据交互方法和系统 |
CN112148736B (zh) * | 2020-09-23 | 2024-03-12 | 抖音视界有限公司 | 缓存数据的方法、设备及存储介质 |
CN112256931A (zh) * | 2020-10-26 | 2021-01-22 | 北京神州数字科技有限公司 | 一种数据提取方法 |
CN112506918B (zh) * | 2020-11-03 | 2024-06-04 | 深圳市宏电技术股份有限公司 | 数据存取方法、终端及计算机可读存储介质 |
CN113419824A (zh) * | 2021-01-25 | 2021-09-21 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、系统及计算机存储介质 |
CN113094368B (zh) * | 2021-04-13 | 2022-08-05 | 成都信息工程大学 | 一种提升缓存访问命中率的系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177016A (zh) * | 2011-12-22 | 2013-06-26 | 北京新媒传信科技有限公司 | 关系型数据库访问方法和装置 |
CN103955486A (zh) * | 2014-04-14 | 2014-07-30 | 五八同城信息技术有限公司 | 分布式服务系统及其数据更新、数据查询的方法 |
CN105095421A (zh) * | 2015-07-14 | 2015-11-25 | 南京国电南自美卓控制系统有限公司 | 一种实时数据库的分布式的存储方法 |
CN105574010A (zh) * | 2014-10-13 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4306152B2 (ja) * | 2001-06-26 | 2009-07-29 | 株式会社日立製作所 | クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム |
US10423622B2 (en) * | 2016-03-07 | 2019-09-24 | Ebay Inc. | Database access using a space-filling curve |
-
2017
- 2017-11-01 CN CN201711059508.9A patent/CN107832401B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103177016A (zh) * | 2011-12-22 | 2013-06-26 | 北京新媒传信科技有限公司 | 关系型数据库访问方法和装置 |
CN103955486A (zh) * | 2014-04-14 | 2014-07-30 | 五八同城信息技术有限公司 | 分布式服务系统及其数据更新、数据查询的方法 |
CN105574010A (zh) * | 2014-10-13 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN105095421A (zh) * | 2015-07-14 | 2015-11-25 | 南京国电南自美卓控制系统有限公司 | 一种实时数据库的分布式的存储方法 |
Non-Patent Citations (1)
Title |
---|
分布式环境下的频繁数据缓存策略;易俗等;《分布式环境下的频繁数据缓存策略》;20170815;第12-17、86页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107832401A (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832401B (zh) | 数据库数据访问方法、系统、装置及计算机可读存储介质 | |
CN105224546B (zh) | 数据存储和查询方法及设备 | |
CN102638584B (zh) | 数据分布缓存方法及系统 | |
EP3508985B1 (en) | Scalable synchronization with cache and index management | |
US9386117B2 (en) | Server side data cache system | |
US6820085B2 (en) | Web system having clustered application servers and clustered databases | |
CN102331986B (zh) | 一种数据库缓存管理方法及一种数据库服务器 | |
US7788243B2 (en) | System and methods for optimizing data transfer among various resources in a distributed environment | |
CN111753016B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN107181686B (zh) | 路由表的同步方法、装置及系统 | |
CN104636500A (zh) | 一种查询热数据的方法及装置 | |
CN105740472A (zh) | 一种分布式实时全文检索方法及系统 | |
CN103353873A (zh) | 基于时间度量数据实时查询服务的优化实现方法及系统 | |
CN103020078A (zh) | 分布式实时数据库数据层次索引方法 | |
US20230099664A1 (en) | Transaction processing method, system, apparatus, device, storage medium, and program product | |
CN105740445A (zh) | 一种数据库查询方法及装置 | |
CN104750740A (zh) | 数据更新的方法及装置 | |
TW201248418A (en) | Distributed caching and cache analysis | |
CN109299056A (zh) | 一种基于分布式文件系统的数据同步方法和装置 | |
CN115827907B (zh) | 基于分布式内存的跨云多源数据立方体发现与集成方法 | |
EP3049940A1 (en) | Data caching policy in multiple tenant enterprise resource planning system | |
CN102982034A (zh) | 互联网站内信息的搜索方法和搜索系统 | |
CN110471925A (zh) | 实现搜索系统中索引数据同步的方法及系统 | |
US20130006920A1 (en) | Record operation mode setting | |
CN112866339B (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 |