CN117992489A - 一种数据查询方法、装置、电子设备及计算机可读介质 - Google Patents

一种数据查询方法、装置、电子设备及计算机可读介质 Download PDF

Info

Publication number
CN117992489A
CN117992489A CN202211324686.0A CN202211324686A CN117992489A CN 117992489 A CN117992489 A CN 117992489A CN 202211324686 A CN202211324686 A CN 202211324686A CN 117992489 A CN117992489 A CN 117992489A
Authority
CN
China
Prior art keywords
data
query
queried
storage module
determining
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.)
Pending
Application number
CN202211324686.0A
Other languages
English (en)
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.)
Jingdong Technology Holding Co Ltd
Original Assignee
Jingdong Technology Holding 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 Jingdong Technology Holding Co Ltd filed Critical Jingdong Technology Holding Co Ltd
Priority to CN202211324686.0A priority Critical patent/CN117992489A/zh
Publication of CN117992489A publication Critical patent/CN117992489A/zh
Pending legal-status Critical Current

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24535Query rewriting; Transformation of sub-queries or views

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

一种数据查询方法、装置、电子设备及计算机可读介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据查询方法、装置、电子设备及计算机可读介质。
背景技术
现在互联网电商业务中,优惠券是一种非常常见、高效的营销手段,为用户发放优惠券可以极大的刺激用户进行交易。通常情况下涉及到优惠券的系统或者接口会遇到超高并发的情况,每到大促,用户浏览商品时的商详页需要展示优惠券信息(展示优惠券名称,优惠券有效期信息等),瞬间流量会到达百万级TPS(TransactionPerSecond,每秒事务处理量)。当前通常是将用户所持有优惠券保存到数据库(Database,简称DB),或者缓存当中(例如redis缓存)。当需要查看用户所持有的优惠券时根据当前用户信息从DB或者缓存中查询,查询到结果后返回给系统进行展示。在实现本申请过程中,发明人发现现有技术中至少存在如下问题:多次的缓存访问操作会增大接口的响应时间,性能较差。
发明内容
有鉴于此,本申请实施例提供一种数据查询方法、装置、电子设备及计算机可读介质,能够解决现有的多次的缓存访问操作会增大接口的响应时间,性能较差的问题。
为实现上述目的,根据本申请实施例的一个方面,提供了一种数据查询方法,包括:
响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块;
响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
可选地,基于数据源中待查询数据的变动时间确定目标变动数据,包括:
以预设扫描周期检测数据源中的待查询数据的变动时间,变动时间包括创建时间和/或修改时间;
确定变动时间与当前时间之间的时间间隔小于预设时间阈值的待查询数据的第一数据标识,其中预设时间阈值基于扫描周期确定;
根据第一数据标识确定目标变动数据。
可选地,根据目标变动数据更新第一存储模块,包括:
根据第一数据标识,从数据源获取与第一数据标识对应的目标变动数据;
基于目标变动数据更新第一存储模块。
可选地,响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,包括:
解析数据查询请求,以获取数据查询请求中的用户标识;
基于用户标识从第二存储模块获取用户标识对应的数据标识列表,第二存储模块用于存储用户标识与数据标识列表的对应关系。
可选地,第一存储模块为查询服务器的内存,第二存储模块为缓存。
可选地,每项待查询数据包括以键值对形式存储的数据标识和详情数据。
可选地,基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据,包括:
获取数据标识列表中的第二数据标识;
确定与第二数据标识对应的待查询数据为目标查询数据。
另外,本申请还提供了一种数据查询装置,包括:
数据接收单元,被配置成响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块;
数据查询单元,被配置成响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
可选地,数据接收单元进一步被配置成:
以预设扫描周期检测数据源中的待查询数据的变动时间,变动时间包括创建时间和/或修改时间;
确定变动时间与当前时间之间的时间间隔小于预设时间阈值的待查询数据的第一数据标识,其中预设时间阈值基于扫描周期确定;
根据第一数据标识确定目标变动数据。
可选地,数据接收单元进一步被配置成:
根据第一数据标识,从数据源获取与第一数据标识对应的目标变动数据;
基于目标变动数据更新第一存储模块。
可选地,数据查询单元进一步被配置成:
解析数据查询请求,以获取数据查询请求中的用户标识;
基于用户标识从第二存储模块获取用户标识对应的数据标识列表,第二存储模块用于存储用户标识与数据标识列表的对应关系。
可选地,第一存储模块为查询服务器的内存,第二存储模块为缓存。
可选地,每项待查询数据包括以键值对形式存储的数据标识和详情数据。
可选地,数据查询单元进一步被配置成:
获取数据标识列表中的第二数据标识;
确定与第二数据标识对应的待查询数据为目标查询数据。
另外,本申请还提供了一种数据查询电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述的数据查询方法。
另外,本申请还提供了一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现如上述的数据查询方法。
上述发明中的一个实施例具有如下优点或有益效果:本申请通过响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块;响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。如此,可以提高数据查询接口的响应速度,能够提供最优的性能以及更高的每秒事务处理量,并可以保证本地内存数据与数据库中数据的一致性,以提高数据查询结果的准确性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本申请,不构成对本申请的不当限定。其中:
图1是根据本申请第一实施例的数据查询方法的主要流程的示意图;
图2是根据本申请第二实施例的数据查询方法的主要流程的示意图;
图3是根据本申请第三实施例的数据查询方法的主要流程的示意图;
图4是根据本申请第四实施例的数据查询方法的应用场景示意图;
图5是根据本申请实施例的数据查询装置的主要单元的示意图;
图6是本申请实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
图1是根据本申请第一实施例的数据查询方法的主要流程的示意图,如图1所示,数据查询方法包括:
步骤S101,响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块。
本实施例中,数据查询方法的执行主体例如可以是查询服务器。当查询服务器启动时,可以从数据源加载全量的待查询数据至查询服务器的第一存储模块。其中,数据源,可以是用于存储数据生产端所生产的数据的数据库。数据生产端将生产的数据持久化保存至数据源。具体地,每项待查询数据包括以键值对形式存储的数据标识和详情数据。
其中,第一存储模块,例如可以是查询服务器的内存。
具体地,执行主体可以通过特定的任务系统定时扫描数据源中待查询数据的变动时间,并基于变动时间确定目标变动数据,从而基于目标变动数据更新第一存储模块中的相关数据。
步骤S102,响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
用户标识,可以为用户的手机号、用户名称等,也可以是A、B等标识符号,本申请实施例对用户标识不做具体限定。举例来说,当用户标识为A时,执行主体可以基于用户标识(例如A)确定对应的数据标识列表,数据标识列表的形式例如为{key1,key2}。在本发明实施例中,数据标识列表可以是用户标识对应的优惠券标识列表,也可以是用户标识对应的赠品标识列表,本申请实施例对数据标识列表的内容不做具体限定。执行主体在确定出用户标识对应的数据标识列表后,可以根据数据标识列表中的各个数据标识(例如优惠券ID:key1、key2)从第一存储模块(例如内存)中确定目标查询数据。目标查询数据,即用户标识对应的用户期望查询的数据,在确定目标查询数据后,可以将目标查询数据返回至数据查询请求的发送端。以优惠券为例,目标查询数据可以包括用户期望查询的优惠券标识(即优惠券ID)和优惠券详情数据,返回目标查询数据时,可以返回优惠券标识和优惠券详情数据,也可以仅返回优惠券详情数据。
具体地,响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,包括:
步骤S11,解析数据查询请求,以获取数据查询请求中的用户标识。具体地,以数据查询请求为优惠券数据查询为例,当优惠券数据查询请求到来时,第一存储模块(例如内存)可以提供所有优惠券的ID以及对应的优惠券详情数据,然后可以根据请求中携带的用户标识用于从第二存储模块(例如缓存)中查询用户标识对应的数据标识列表。
步骤S12,基于用户标识从第二存储模块获取用户标识对应的数据标识列表。其中,第二存储模块用于存储用户标识与数据标识列表的对应关系,用户标识与对应的数据标识列表可以是以键值对的形式存储于缓存中,以供随时调用。示例的,第二存储模块,例如可以是缓存。每个用户对应一个数据标识列表。当执行主体获取到数据查询请求中的用户标识后,可以从缓存中获取用户标识(例如A)对应的数据标识列表(例如{key1,key2})。其中,每项待查询数据包括以键值对形式存储的数据标识和详情数据。
具体地,基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据,包括:
步骤S21,获取数据标识列表中的第二数据标识;其中,第二数据标识,例如数据查询请求中携带的每一个用户标识对应的优惠券标识列表中的具体优惠劵标识,具体可以是请求中携带的用户标识A对应的优惠券标识:key1、key2。需要说明的是,数据查询请求中携带的用户标识的数量可以为一个也可以为多个,本申请实施例对数据查询请求中携带的用户标识的数量不做具体限定。
步骤S22,执行主体在获取到第二数据标识后,可以确定与第二数据标识对应的待查询数据为目标查询数据。在一种可选实施例中,目标查询数据,例如可以包括用户可用的优惠券,具体包括用户可用的优惠券标识和对应的优惠券详情数据。具体地,可以根据第二数据标识(例如优惠券标识)从内存中查询对应的目标查询数据(例如优惠券标识对应的详情数据)。
本实施例响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块;响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。如此,可以提高数据查询接口的响应速度,能够提供最优的性能以及更高的每秒事务处理量,并可以保证本地内存数据与数据库中数据的一致性,以提高数据查询结果的准确性。
图2是根据本申请第二实施例的数据查询方法的主要流程示意图,如图2所示,数据查询方法包括:
步骤S201,响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块。
步骤S202,以预设扫描周期检测数据源中的待查询数据的变动时间,变动时间包括创建时间和/或修改时间。
预设的扫描周期,例如可以是5分钟,本申请实施例对预设的扫描周期的具体数值不做限定。示例的,执行主体可以每5分钟检测一下数据源中待查询数据对应的字段是否记录新的创建时间和/或新的修改时间。示例的,以查询数据为优惠劵为例,当数据生产端生成新的优惠券时,会将新优惠券的生成时间写入其“创建时间”属性字段中,当有优惠券的信息发生修改变更时,会将发生变更的时间写入其“修改时间”属性字段中,执行主体可以通过特定的任务系统以预设的扫描周期扫描这两个字段,以用于确定是否有变动或新增的待查询数据。
步骤S203,确定变动时间与当前时间之间的时间间隔小于预设时间阈值的待查询数据的第一数据标识,其中预设时间阈值基于扫描周期确定。
具体地,预设时间阈值可以大于或者等于扫描周期。第一数据标识,用于表征新增及发生变动的数据,例如可以是发生数据变动的优惠券ID、新增的优惠券ID,又例如可以是发生数据变动的赠品ID、新增的赠品ID。
步骤S204,根据第一数据标识确定目标变动数据。
示例的,第一数据标识,例如可以是新增的或发生变动的优惠券ID:key1、key2、key3。执行主体可以根据第一数据标识确定需要在第一存储模块(例如内存)中新增或修改的目标变动数据。例如,在第一存储模块中增加新的优惠券ID和对应的优惠券详情数据,或者在第一存储模块中修改发生变动的优惠劵ID对应的优惠劵详情数据。
本申请实施例中,执行主体可以根据“创建时间”和“修改时间”两个字段判断数据源中的待查询数据是否发生了数据变动。当执行主体检测到“创建时间”或者“修改时间”的时间值在距离当前扫描时间的预设时间阈值(例如5分钟)之内时,表明发生了数据变动。示例的,比如在2022年1月1号上午10点5分修改了优惠券A的优惠券详情数据,则在“修改时间”字段会记录2022-01-01 10:05:00。当任务系统在2022-01-01 10:08:00分进行扫描时,发现2022-01-01 10:08:00至2022-01-01 10:05:00分的时间间隔小于预设时间阈值(例如5分钟),那么就认为优惠券A属于变动数据,优惠券A以及优惠券A对应的优惠券详情数据即目标变动数据。
步骤S205,基于目标变动数据更新第一存储模块。
在检测到数据源中的待查询数据发生变动时,可以在确定出目标变动数据后,基于确定出的目标变动数据更新第一存储模块中的待查询数据,以保持与数据源的一致性。
步骤S206,响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
步骤S206的原理与步骤S102的原理类似,此处不再赘述。
本申请实施例通过将全量的待查询数据存储在查询服务器的本地内存中,可以提供更优的性能以及更高的每秒事务处理量,同时通过特定的数据更新方式,可以保持查询服务器内存中的待查询数据为最新数据,以保证数据查询结果的有效性和准确性。
图3是根据本申请第三实施例的数据查询方法的主要流程的示意图。如图3所示,数据查询方法包括:
步骤S301,响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块。
第一存储模块,例如可以是查询服务器的内存。
示例的,以待查询数据为优惠券数据为例,本申请实施例中,在服务启动时,为了确保内存里面能够加载到全部的优惠券,执行主体可以在启动时查询用于存储优惠券生产端产生的优惠券数据的数据库(即数据源),该数据库中保存的是全部优惠券数据,能够保证在服务启动的时刻,保存优惠券数据的数据库中的数据与查询服务器内存中的数据是相同的。
示例的,以优惠券数据查询为例,当服务启动后,会产生新的数据,或者之前加载过的优惠券数据会发生变更。执行主体可以通过特定的任务系统扫描数据源中优惠券数据的变动时间,该变动时间包括创建时间和修改时间。任务系统根据变动时间获取新增的优惠券ID和发生变更的优惠券ID并存储。执行主体通过读取“任务系统”即可获取新增或发生变更的优惠券ID,并将这些优惠券的详情数据维护到查询服务器的内存当中。通过只查询“任务系统”中存储的增量数据和变更数据,可以减少系统压力。例如,系统有1万张优惠券,在服务启动的时候进行了全量加载,在服务启动后可以只对几分钟内的增量数据进行保存处理即可,无需对全部数据再次进行处理,从而保证了数据查询速度,减少了系统压力。
步骤S302,以预设扫描周期检测数据源中的待查询数据的变动时间,变动时间包括创建时间和/或修改时间。
步骤S303,确定变动时间与当前时间之间的时间间隔小于预设时间阈值的待查询数据的第一数据标识,其中预设时间阈值基于扫描周期确定。
预设时间阈值可以例如等于扫描周期。
第一数据标识,可以表征发生变动的数据和新增数据对应的数据标识,例如发生数据变动的优惠券对应的优惠券标识(即优惠券ID)。
步骤S304,根据第一数据标识确定目标变动数据。
步骤S305,从数据源获取与第一数据标识对应的目标变动数据。
执行主体可以根据第一数据标识确定目标变动数据,并从数据源获取第一数据标识对应的目标变动数据。举例来说,可以根据第一数据标识,例如发生变动的优惠券标识,从数据源获取对应的优惠券详情数据,以更新第一存储模块(例如查询服务器内存)中对应的优惠券的详情数据。
步骤S306,基于目标变动数据更新第一存储模块。
执行主体在获取到与第一数据标识对应的目标变动数据后,可以基于获取到的目标变动数据更新第一存储模块(例如查询服务器内存)中的对应待查询数据或在第一存储模块中增加待查询数据。
步骤S307,响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
本申请实施例中,当数据加载到内存中之后就可以供系统进行查询,当查询请求到来时,可以从内存中获取所有优惠券的ID以及对应的详情。进而只需要从缓存中获取到用户所持有的优惠券列表即可。本申请实施例将原本需要多次对缓存进行远程调用的操作改为1次缓存操作,极大的减少了对缓存的依赖,减少了缓存的压力,利用查询服务器内存进行加载,能够提供最优的性能以及更高的TPS。开发成本较低,系统接入成本低,学习成本低,对原有业务影响小。
图4是根据本申请第四实施例的数据查询方法的应用场景示意图。本申请实施例的数据查询方法,可以应用于用户名下的优惠券数据的查询场景。如图4所示:
生产端:将生产的数据进行持久化。以优惠券数据创建为例,创建优惠券之后,将所有的优惠券数据保存到数据库(DataBase,DB)进行持久化。可以理解的是,创建的所有优惠券数据不限于保存到数据库,也可以保存到文本文件。本申请实施例以保存到数据库为例。
任务系统:任务系统用于进行定时扫描数据库DB,例如,5分钟扫描一次,当发现有新增的优惠券或者某优惠券信息发生了变更时,将这5钟内发生新增或者修改的优惠券ID进行保存。任务系统中仅对发生新增/变更的数据进行维护。可以根据数据库的“创建时间”和“修改时间”两个字段判断哪些数据发生了新增或变更。当有新的优惠券生成时,可以将生成的时间写入到“创建时间”字段中;当有优惠券发生修改变更时,可以将当时变更的时间写到“修改时间”中。任务系统定时扫描查询这两个字段,检测这两个字段的时间值是否在当前扫描时间的5分钟内(本申请实施例对该时间段不做具体限定)即可。任务系统查询是否有新增/变更优惠券,若有则保存新增/变更优惠券ID。例如2022年1月1号上午10点5分创建了优惠券A,那么就在“创建时间”中记录:2022-01-01 10:05:00。当任务系统在2022-01-01 10:08:00分进行扫描时,发现2022-01-01 10:08:00至2022-01-01 10:05:00分的时间间隔小于5分钟,则确定优惠券A属于新增数据,对优惠券A进行保存。
查询服务:用来对外提供查询接口。在本申请实施例中,当系统服务器在启动时就将全部的优惠券进行加载,加载到服务器内存当中。当查询服务器启动后,有新的优惠券生成或者变更时也进行内存的新增或者修改。
具体地,在查询服务器启动时,查询在“生产端”模块中写入数据的DB,该DB中保存的是全部优惠券信息,以确保内存里能够加载到全部的优惠券,能够保证在服务启动的时刻DB和服务器内存的数据是相同的。
当服务启动后,会产生新的数据,或者之前加载过的优惠券数据会发生变更,此时只需要读取在“任务系统”模块中保存的优惠券ID即可,将这些优惠券的详情维护到查询服务器内存当中。通过只查询“任务系统”中产生的数据,以减少系统压力。例如,如果系统有1万张优惠券,在查询服务器启动的时进行了全量加载,在查询服务器启动后只对几分钟内的增量数据进行处理即可,无需对全部的新增数据再次进行处理,以减轻系统处理器资源的压力。
优惠券被加载到查询服务器内存中之后,保存优惠券的全部信息,例如,共有3张优惠券{key1,key2,key3},在内存中存储3张优惠券的全部信息,可以用k-v格式存储。例如对于key1优惠券来说,key为优惠券标识(或称为优惠券ID)key1,value为:
name:立减10元优惠券
startDate:2022-02-10
endDate:2022003-10
当数据加载到查询服务器的内存中之后,可以供系统进行查询,当查询请求到来时,可以从内存中获取所有优惠券ID以及对应的优惠券详情。执行主体只需要从缓存中获取到用户所持有的优惠券ID列表即可。通过查询缓存能够获取到用户标识对应的优惠券ID列表,例如用户A所持有的优惠券为{key1,key3}
然后,执行主体就可以从内存中维护的k-v结构中获取key1和key3对应的优惠券详情,然后进行接口返回以供用户查看。
本申请实施例将原本需要多次对缓存进行远程调用的操作改为1次缓存操作,极大的减少了对缓存的依赖,减少了缓存的压力,利用服务器内存进行加载,能够提供最优的性能以及更高的每秒事务处理量(TransactionPerSecond,TPS)。开发成本较低,系统接入成本低,学习成本低。对原有业务不受太大影响,无需过多改造。
图5是根据本申请实施例的数据查询装置的主要单元的示意图。如图5所示,数据查询装置500包括数据接收单元501和数据查询单元502。
数据接收单元501,被配置成响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块。
数据查询单元502,被配置成响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
在一些实施例中,数据接收单元501进一步被配置成:以预设扫描周期检测数据源中的待查询数据的变动时间,变动时间包括创建时间和/或修改时间;确定变动时间与当前时间之间的时间间隔小于预设时间阈值的待查询数据的第一数据标识,其中预设时间阈值基于扫描周期确定;根据第一数据标识确定目标变动数据。
在一些实施例中,数据接收单元501进一步被配置成:根据第一数据标识,从数据源获取与第一数据标识对应的目标变动数据;基于目标变动数据更新第一存储模块。
在一些实施例中,数据查询单元502进一步被配置成:解析数据查询请求,以获取数据查询请求中的用户标识;基于用户标识从第二存储模块获取用户标识对应的数据标识列表,第二存储模块用于存储用户标识与数据标识列表的对应关系。
在一些实施例中,第一存储模块为查询服务器的内存,第二存储模块为缓存。
在一些实施例中,每项待查询数据包括以键值对形式存储的数据标识和详情数据。
在一些实施例中,数据查询单元502进一步被配置成:获取数据标识列表中的第二数据标识;确定与第二数据标识对应的待查询数据为目标查询数据。
需要说明的是,在本申请数据查询方法和数据查询装置在具体实施内容上具有相应关系,故重复内容不再说明。
图6示出了可以应用本申请实施例的数据查询方法或数据查询装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有数据查询处理屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所提交的数据查询请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块。响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。如此,可以提高数据查询接口的响应速度,能够提供最优的性能以及更高的每秒事务处理量,并可以保证本地内存数据与数据库中数据的一致性,以提高数据查询结果的准确性。
需要说明的是,本申请实施例所提供的数据查询方法一般由服务器605执行,相应地,数据查询装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本申请实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM703中,还存储有计算机系统700操作所需的各种程序和数据。CPU701、ROM702以及RAM703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶征信授权查询处理器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本申请公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本申请所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括数据接收单元和数据查询单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备响应于检测到查询服务器启动,从数据源加载全量的待查询数据至查询服务器的第一存储模块;其中,基于数据源中待查询数据的变动时间确定目标变动数据,并根据目标变动数据更新第一存储模块;响应于接收到数据查询请求,确定数据查询请求对应的用户标识,并基于用户标识确定对应的数据标识列表,以基于数据标识列表从第一存储模块的待查询数据中确定目标查询数据。
根据本申请实施例的技术方案,可以提高数据查询接口的响应速度,能够提供最优的性能以及更高的每秒事务处理量,并可以保证本地内存数据与数据库中数据的一致性,以提高数据查询结果的准确性。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (10)

1.一种数据查询方法,其特征在于,包括:
响应于检测到查询服务器启动,从数据源加载全量的待查询数据至所述查询服务器的第一存储模块;其中,基于所述数据源中待查询数据的变动时间确定目标变动数据,并根据所述目标变动数据更新所述第一存储模块;
响应于接收到数据查询请求,确定所述数据查询请求对应的用户标识,并基于所述用户标识确定对应的数据标识列表,以基于所述数据标识列表从所述第一存储模块的待查询数据中确定目标查询数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据源中待查询数据的变动时间确定目标变动数据,包括:
以预设扫描周期检测所述数据源中的待查询数据的变动时间,所述变动时间包括创建时间和/或修改时间;
确定所述变动时间与当前时间之间的时间间隔小于预设时间阈值的所述待查询数据的第一数据标识,其中所述预设时间阈值基于所述扫描周期确定;
根据所述第一数据标识确定所述目标变动数据。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标变动数据更新所述第一存储模块,包括:
根据所述第一数据标识,从所述数据源获取与所述第一数据标识对应的目标变动数据;
基于所述目标变动数据更新所述第一存储模块。
4.根据权利要求1所述的方法,其特征在于,所述响应于接收到数据查询请求,确定所述数据查询请求对应的用户标识,并基于所述用户标识确定对应的数据标识列表,包括:
解析所述数据查询请求,以获取所述数据查询请求中的用户标识;
基于所述用户标识从第二存储模块获取所述用户标识对应的所述数据标识列表,所述第二存储模块用于存储所述用户标识与所述数据标识列表的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述第一存储模块为所述查询服务器的内存,所述第二存储模块为缓存。
6.根据权利要求1所述的方法,其特征在于,每项所述待查询数据包括以键值对形式存储的数据标识和详情数据。
7.根据权利要求1或6所述的方法,其特征在于,所述基于所述数据标识列表从所述第一存储模块的待查询数据中确定目标查询数据,包括:
获取所述数据标识列表中的第二数据标识;
确定与所述第二数据标识对应的待查询数据为目标查询数据。
8.一种数据查询装置,其特征在于,包括:
数据接收单元,被配置成响应于检测到查询服务器启动,从数据源加载全量的待查询数据至所述查询服务器的第一存储模块;其中,基于所述数据源中待查询数据的变动时间确定目标变动数据,并根据所述目标变动数据更新所述第一存储模块;
数据查询单元,被配置成响应于接收到数据查询请求,确定所述数据查询请求对应的用户标识,并基于所述用户标识确定对应的数据标识列表,以基于所述数据标识列表从所述第一存储模块的待查询数据中确定目标查询数据。
9.一种数据查询电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202211324686.0A 2022-10-27 2022-10-27 一种数据查询方法、装置、电子设备及计算机可读介质 Pending CN117992489A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211324686.0A CN117992489A (zh) 2022-10-27 2022-10-27 一种数据查询方法、装置、电子设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211324686.0A CN117992489A (zh) 2022-10-27 2022-10-27 一种数据查询方法、装置、电子设备及计算机可读介质

Publications (1)

Publication Number Publication Date
CN117992489A true CN117992489A (zh) 2024-05-07

Family

ID=90887414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211324686.0A Pending CN117992489A (zh) 2022-10-27 2022-10-27 一种数据查询方法、装置、电子设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN117992489A (zh)

Similar Documents

Publication Publication Date Title
US11038975B2 (en) Information pushing method and device
CN108846753B (zh) 用于处理数据的方法和装置
CN107302597B (zh) 消息文案推送方法和装置
CN109582873B (zh) 用于推送信息的方法和装置
CN108984553B (zh) 缓存方法和装置
CN108810047B (zh) 用于确定信息推送准确率的方法、装置及服务器
CN118312076A (zh) 地图图标处理方法、装置、电子设备及计算机可读介质
CN111008865A (zh) 优惠券同步展示方法、装置、服务器及存储介质
CN113312553B (zh) 一种用户标签的确定方法和装置
CN108011936B (zh) 用于推送信息的方法和装置
CN107291923B (zh) 信息处理方法和装置
CN113761565A (zh) 数据脱敏方法和装置
CN113434754A (zh) 确定推荐api服务的方法、装置、电子设备和存储介质
CN110889000B (zh) 用于输出信息的方法和装置
CN112784139B (zh) 查询方法、装置、电子设备和计算机可读介质
CN117992489A (zh) 一种数据查询方法、装置、电子设备及计算机可读介质
CN116861397A (zh) 一种请求处理方法、装置、电子设备及计算机可读介质
CN113362097B (zh) 一种用户确定方法和装置
CN113297087A (zh) 测试方法和装置
CN113722193A (zh) 检测页面异常的方法和装置
CN111291038B (zh) 一种数据查询方法及装置
CN113760965B (zh) 数据查询的方法和装置
CN112131287A (zh) 一种读取数据的方法和装置
CN110120958B (zh) 一种基于众包模式的任务推送方法和装置
CN110135774B (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