CN110275901B - 一种缓存数据调取方法及装置 - Google Patents
一种缓存数据调取方法及装置 Download PDFInfo
- Publication number
- CN110275901B CN110275901B CN201910556209.9A CN201910556209A CN110275901B CN 110275901 B CN110275901 B CN 110275901B CN 201910556209 A CN201910556209 A CN 201910556209A CN 110275901 B CN110275901 B CN 110275901B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- identifier
- data identifier
- client
- 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
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种缓存数据调取方法及装置,其中,调取方法包括获取客户端发送的数据请求,数据请求中包括数据标识;确定数据标识的数据标识类型,数据标识类型为第一数据标识或第二数据标识,第一数据标识用于标识缓存数据,第二数据标识是对第一数据标识和缓存数据进行整合并反馈至客户端的数据标识;若数据标识为第二数据标识,则解析第二数据标识得到缓存数据;若数据标识为第一数据标识,则根据缓存组件可用性调取缓存数据,缓存组件用来缓存缓存数据。当缓存组件出现异常时,通过解析存储在客户端的第二数据标识,来获取相应的缓存数据,避免由数据库中获取相应缓存数据的情况发生,提高了服务器端获取数据信息的效率。
Description
技术领域
本公开涉及互联网技术领域,具体是涉及一种缓存数据调取方法及装置。
背景技术
目前,常常需要在服务器端增加缓存组件,如redis、memcache等来临时存储一些数据信息,以使得再次调用该数据信息时,服务器端不必每次都访问原始数据库,而是直接由这些具备临时存储功能的缓存组件中获取。
但是,在实际应用中,服务器端常会发生缓存组件异常的现象,异常现象的发生将导致不能由缓存组件获取数据信息,而是只能由原始数据库获取,进而导致了服务器端获取数据信息的效率降低。
发明内容
为了克服现有技术中存在的问题,本公开提供一种缓存数据调取方法及装置。
第一方面,本公开实施例提供一种缓存数据调取方法,该方法包括:获取客户端发送的数据请求,数据请求中包括数据标识;确定数据标识的数据标识类型,数据标识类型为第一数据标识或第二数据标识,第一数据标识用于标识缓存数据,第二数据标识是对第一数据标识和缓存数据进行整合并反馈至客户端的数据标识;若数据标识为第二数据标识,则解析第二数据标识得到缓存数据;若数据标识为第一数据标识,则根据缓存组件可用性调取缓存数据,缓存组件用来缓存缓存数据。
在一例中,在获取到客户端发送的首次数据请求之际,一种缓存数据调取方法还包括:根据首次数据请求中包括的第一数据标识生成缓存数据;判断缓存组件是否可用;若缓存组件可用,则在缓存组件中缓存根据第一数据标识生成的缓存数据,并向客户端反馈第一数据标识;若缓存组件不可用,则向客户端反馈第二数据标识,第二数据标识中包括第一数据标识和缓存数据。
在一例中,解析第二数据标识得到缓存数据之后,一种缓存数据调取方法还包括:判断缓存组件是否可用;若缓存组件可用,则在缓存组件中缓存从第二数据标识中解析得到的缓存数据,并向客户端反馈第一数据标识。
在一例中,根据缓存组件可用性调取缓存数据,包括:若缓存组件可用,则从缓存组件中调用缓存数据;若缓存组件不可用,则根据第一数据标识生成缓存数据。
在一例中,根据第一数据标识生成缓存数据之后,一种缓存数据调取方法还包括:整合第一数据标识和缓存数据得到第二数据标识,向客户端反馈第二数据标识。
在一例中,整合第一数据标识和缓存数据得到第二数据标识,包括:将缓存数据打包为JSON格式字符串;将JSON格式字符串与第一数据标识拼接得到第二数据标识。
在一例中,JSON格式字符串与第一数据标识之间设置有指定标识符。
在一例中,确定数据标识的数据标识类型,包括:若数据标识中包含指定标识符,则数据标识为第二数据标识;若数据标识中不包含指定标识符,则数据标识为第一数据标识。
第二方面,本公开实施例提供一种缓存数据调取装置,该装置包括:获取数据请求模块:用于获取客户端发送的数据请求,数据请求中包括数据标识;判断数据标识类型模块:用于确定数据标识的数据标识类型,数据标识类型为第一数据标识或第二数据标识,第一数据标识用于标识缓存数据,第二数据标识是对第一数据标识和缓存数据进行整合并反馈至客户端的数据标识;获取缓存数据模块:若数据标识为第二数据标识,则解析第二数据标识得到缓存数据;若数据标识为第一数据标识,则根据缓存组件可用性调取缓存数据,缓存组件用来缓存缓存数据。
第三方面,本公开实施例提供一种电子设备,其中,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行缓存数据调取方法。
第四方面,本公开实施例提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行缓存数据调取方法。
本公开提供的一种缓存数据调取方法,当服务器端的缓存组件出现存储异常时,可以将待存储的缓存数据整合处理为第二数据标识,并将第二数据标识存储在客户端。基于客户端与服务器端是通过HTTP协议交换数据,以HTTP作为基础协议,其交换数据的可靠性和稳定性更高。当服务器端再次接受到调取该缓存数据的请求时,将解析第二数据标识,并由客户端以可靠、稳定的方式获取相应的缓存数据,可以避免由数据库中获取相应缓存数据的情况发生,提高服务器端获取数据信息的效率。
附图说明
通过参考附图阅读下文的详细描述,本公开实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的实施方式,其中:
图1示出了本公开实施例提供的第一种缓存数据调取方法示意图;
图2示出了本公开实施例提供的第二种缓存数据调取方法示意图;
图3示出了本公开实施例提供的第三种缓存数据调取方法示意图;
图4示出了本公开实施例提供的第四种缓存数据调取方法示意图;
图5示出了本公开实施例提供的第五种缓存数据调取方法示意图;
图6示出了本公开实施例提供的第六种缓存数据调取方法示意图;
图7示出了本公开实施例提供的一种缓存数据调取装置示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
需要注意,虽然本文中使用“第一”、“第二”等表述来描述本公开的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。
图1为本公开实施例提供的一种缓存数据调取方法的示意图,如图1所示,一种缓存数据调取方法100包括步骤S101-S103。下面将详细介绍各个步骤的具体情况。
S101:获取客户端发送的数据请求。
本公开实施例中涉及的数据请求中包括数据标识,其中,每一种数据标识可以表征相应的缓存数据。例如,若一种数据标识是用户预定酒店的ID号,那么相应的缓存数据为与用户预定酒店有关的数据信息,例如为用户的姓名、用户手机号以及用户的期望价格等。
S102:确定数据标识的数据标识类型。
本公开实施例中涉及的数据标识类型包括两类,分别为第一数据标识和第二数据标识。
其中,第一数据标识用于标识缓存数据,第一数据标识与标识的缓存数据是相互对应的,也就是说,可以根据第一数据标识,从各个数据端口获取相应的缓存数据。例如,如果第一数据标识是用户的ID号,那么根据第一数据标识可以获取并标识与其相对应的所有缓存数据,可以是用户的手机号、用户的地址、用户的行为特征以及与该ID号相关的其他专属的缓存数据信息。
第二数据标识是对将第一数据标识和与该第一数据标识相对应的缓存数据进行整合处理后的数据标识,也就是说,整合后获取的第二数据标识中,既包括第一数据标识,也包括与第一数据标识相对应的缓存数据。
整合后获取的第二数据标识还将反馈至客户端。由于客户端与服务器端之间是通过HTTP协议交换数据信息的,以HTTP作为基础协议,其可靠性和稳定性更高,因此将整合后的第二数据标识反馈至客户端,以使后续服务器端的数据调取的工作可以更加的稳定和可靠。
S103:根据数据标识获取缓存数据。
其中,步骤S103还包括步骤S1031:若数据标识为第一数据标识,则根据缓存组件可用性调取缓存数据;和步骤S1032:若数据标识为第二数据标识,则解析第二数据标识得到缓存数据。
如果数据标识为第一数据标识,那么将根据缓存组件的可用性来调取相应的缓存数据。其中,缓存组件是设置在服务器端,可以用来缓存与第一数据标识相对应的缓存数据的。若缓存组件可用,则可以由缓存组件来调取相应的缓存数据;若缓存组件不可用,则不能由缓存组件来调取相应的缓存数据。需要说明的是,存储在缓存组件中的缓存数据是预先存储在缓存组件中的,此处判断缓存组件的可用性,仅是确定能否由缓存组件中调取出相应的缓存数据。
如果数据标识为第二数据标识,那么将不由缓存组件中调取缓存数据,而是通过调取并解析储存在客户端的第二数据标识,以获得相应的缓存数据。
本公开提供的一种缓存数据调取方法,当服务器端的缓存组件出现存储异常时,可以将待存储的缓存数据整合处理为第二数据标识,并将第二数据标识存储在客户端。基于客户端与服务器端通过HTTP协议交换数据,以HTTP作为基础协议,其交换数据的可靠性和稳定性更高。当服务器端再次接受到调取该缓存数据的请求时,将解析第二数据标识,并由客户端以可靠、稳定的方式获取相应的缓存数据,可以避免由数据库中获取相应缓存数据的情况发生,提高服务器端获取数据信息的效率。
本公开将结合具体实施例对上述缓存数据调取方法进行说明。
在一例中,在获取到客户端发送的首次数据请求之际,缓存数据调取方法还将对缓存组件的可用性进行判断,根据缓存组件的可用性,确定缓存数据的存取位置。
图2为本公开实施例提供的另一种缓存数据调取方法200,如图2所示,该缓存数据调取方法包括如下步骤。
S201:获取客户端发送的首次数据请求。
服务器端可以根据该首次数据请求中包括的第一数据标识,从各个数据端口获取并生成该第一数据标识的缓存数据。例如,第一数据标识可以是用户登录的唯一ID,假设该ID为“uid=1001”,可以根据用户登录的唯一ID可以从各个数据端口获取并生成关于该ID的专属的数据信息,也就是本公开中所指的缓存数据,例如为“Param0:aaa”、“Param1:bbb”、“Param2:ccc”、“Param3:ddd”、“Param4:eee”。
需要说明的是,根据首次数据请求,生成的缓存数据,既可以是由各个数据端口中收集的,也可以是用户根据该数据请求的要求,填写的关于该数据请求的相关的数据信息,该数据信息有可能需要在后续的工作中多次被调取。
S202:判断缓存组件是否可用。
需要说明的是,此处判断缓存组件是否可用,仅是用来确定根据第一数据标识生成的缓存组件能否存入该缓存组件中。能够将缓存数据存入缓存组件中,并不一定保证未来在调取该缓存数据时,一定能够由该缓存组件中调取,届时,还需进一步判断调取缓存数据时的缓存组件是否可用。
S2021:若缓存组件可用,将缓存数据缓存在缓存组件中,并将第一数据标识反馈至客户端。
如果设置在服务器端的缓存组件可用,则将在S201步骤中根据第一数据标识生成的缓存数据缓存在缓存组件中,并且将该第一数据标识反馈至客户端,也就是将“uid=1001”反馈至客户端,表示已完成在缓存组件中存入相应的缓存数据的工作。
需要说明的是,缓存在缓存组件中的根据第一数据标识生成的缓存数据,可以根据反馈到客户端的第一数据标识索引来,也就是说,当客户端发送包含有该第一数据标识的数据请求时,可以由缓存组件中索引出相应的缓存数据,进一步地,可以理解为,可以根据客户端发送包含有“uid=1001”的第一数据标识的数据请求,可以由缓存组件索引出相应的缓存数据“Param0:aaa”、“Param1:bbb”、“Param2:ccc”、“Param3:ddd”、“Param4:eee”。
S2022:若缓存组件不可用,向客户端反馈第二数据标识。
如果设置在服务器端的缓存组件不可用,则向客户端反馈第二数据标识,其中,第二数据表述包括第一数据标识,以及在S201步骤中根据第一数据标识生成的缓存数据,并且将该第二数据标识反馈到客户端。根据上文可知,第二数据标识中包含有“uid=1001”和“Param0:aaa”、“Param1:bbb”、“Param2:ccc”、“Param3:ddd”、“Param4:eee”。
同理,当客户端发送包含有该第二数据标识的数据请求时,可以由客户端索引出第二数据标识,并将该第二数据标识进行处理,获得相应的缓存数据。也就是说,当客户端发送包含有该第二数据标识的数据请求时,根据由客户端索引出的第二数据标识,可以获得相应的缓存数据“Param1:bbb”、“Param2:ccc”、“Param3:ddd”、“Param4:eee”。
S203:获取客户端发送的数据请求。
其中该数据请求是非首次客户端发送的数据请求。该数据请求的标识类型可以是第一数据标识或第二数据标识。
S204:确定数据标识的数据标识类型。
确定客户端发送的数据请求中包含的数据标识的数据标识类型。
S2041:若数据标识为第一数据标识,则根据缓存组件可用性调取缓存数据。也就是说,如果客户端发送的数据请求中包含的数据标识为第一数据标识,则进一步判断缓存组件的可用性,根据缓存组件的可用性来确定调取缓存数据的位置。
S2042:若数据标识为第二数据标识,则解析第二数据标识得到缓存数据。也就是说,如果客户端发送的数据请求中包含的数据标识为第二数据标识,那么将调取并解析储存在客户端的第二数据标识,以获得相应的缓存数据。
本公开实施例通过在获取到客户端发送的首次数据请求之际,若缓存组件不可用,则将不能存储在缓存组件中的缓存数据进行整合处理为第二数据标识,并存储在客户端。当需要再次调取该缓存数据时,可以直接由客户端解析并调取。本公开实现了在缓存组件不可用时,可以由客户端获取到相关的缓存数据,而避免去原始的数据库中调取信息,提高了调取数据信息的效率。
作为另一种可能的实施例,该实施例包含有图1所示的步骤S101-S103,这里对相同的实施步骤不再赘述。如图3所示,在解析第二数据标识得到缓存数据之后,该缓存数据调取方法300还包括如下步骤。
S301:判断缓存组件是否可用。
S3011:若缓存组件可用,则在缓存组件缓存从第二数据标识中解析得到的缓存数据,并向客户端反馈第一数据标识。
在实际应用中,还可能存在继续发起相同的数据请求,以调取对应的缓存数据。因此,在步骤S103中解析第二数据标识得到缓存数据之后,还需要继续判断缓存组件的可用性。如果缓存组件可用,则将在缓存组件中缓存由第二数据标识中解析得到的缓存数据,并将向客户端反馈第一数据标识,表示已完成在缓存组件中存入相应的缓存数据的工作。当再次发起相同的数据请求时,由于数据请求为第一数据标识,那么将根据缓存组件的可用性来判断是否由缓存组件中调取缓存数据。
S3012:若缓存组件不可用,则将第二数据标识反馈至客户端。
在步骤S103中解析第二数据标识得到缓存数据之后,还将继续判断缓存组件的可用性。如果缓存组件不可用,那么,由于在步骤S102中已经存储了相应的第二数据标识,当再次发起相同的数据请求时,由于数据请求为第二数据标识,可以直接由客户端调取相应的第二数据标识,并解析出相应的缓存数据。
需要说明的是,再次发起调用缓存数据的请求可以执行多次,在实现该缓存数据的调取时,只需循环执行步骤S101-S103和S301即可,其中步骤S103包括步骤S1031和步骤S1032,步骤S301包括步骤S3011和步骤S3012。
以用户在线预订酒店为例,在预订过程中,往往会根据用户的请求产生大量的专属数据信息。例如用户的姓名、用户手机号以及用户的期望价格等信息,并且,这些数据信息往往需要被调用多次。为了避免缓存这些专属数据信息的缓存组件发生异常,导致再次获取该专属数据信息需要由相关的数据端口来获取这种情况的发生,在线预订酒店的系统可以采用本公开实施例提供的缓存数据调取方法来实现。
在实际应用中,用户登录在线预定酒店的系统,发出预定酒店的请求,客户端将首次发起相应的数据请求,该数据请求中包含有用户ID这一标识,也就是本公开中的第一数据标识。根据用户首次发出的请求,获取相关数据信息,如用户的姓名、用户手机号以及用户的期望价格等,这些数据信息即为待缓存的缓存数据。
在获取到缓存数据之后,将判断缓存组件的可用性。如果缓存组件可用,则在缓存组件中缓存根据第一数据标识生成的缓存数据,也就是在缓存组件中缓存用户的姓名、用户手机号以及用户的期望价格等信息。并将用户ID这一第一数据标识发送至客户端。
如果缓存组件不可用,则根据第一数据标识和缓存数据,整合处理形成第二数据标识,并将第二数据标识反馈并存储至客户端。
当用户再次发起请求时,客户端也相应的发起数据请求,该数据请求中包含有第一数据标识或第二数据标识。如果数据请求中包含的数据标识为第一数据标识,也就是用户ID时,那么将根据缓存组件的可用性来判断是否由缓存组件中调取缓存数据,即用户的姓名、用户手机号以及用户的期望价格等。
如果数据请求中包含的数据标识为第二数据标识时,那么将解析存储在客户端的第二数据标识,并获得相应的缓存数据,如用户的姓名、用户手机号以及用户的期望价格等。
在预订酒店的过程中,由于用户的姓名、用户手机号以及用户的期望价格等这些缓存数据往往需要被调取多次,因此,在解析到第二数据标识得到缓存数据之后,还将继续判断缓存组件的可用性。
如果缓存组件可用,则在缓存组件中缓存由第二数据标识中解析得到的缓存数据,并向客户端反馈该第一标识。当用户再次发起预定酒店的请求,客户端也相应的发起数据请求。由于数据请求中包含的数据标识为第一数据标识,也就是用户ID时,那么将根据缓存组件的可用性来判断是否由缓存组件中调取缓存数据,即用户的姓名、用户手机号以及用户的期望价格等。
如果缓存组件不可用,那么当客户端再次发起数据请求时,由于数据请求中包含的数据标识为第二数据标识,将解析存储在客户端的第二数据标识,并获得相应的缓存数据,即用户的姓名、用户手机号以及用户的期望价格等。
如果需要多次发起预定酒店的数据请求,则可循环执行以上步骤即可实现调用相关的缓存数据。如果不需要继续发起数据请求,则本公开提供的缓存数据调取方法将就此结束。
如图4所示,在执行完步骤S101-S103、S301之后,其中步骤S103包括步骤S1031和步骤S1032,步骤S301包括步骤S3011和步骤S3012,本公开的另一种实施例还包括以下步骤。
在步骤S103的步骤S1031中,根据缓存组件的可用性来调取缓存数据进一步包括:
S401:缓存组件可用,由缓存组件中调取缓存数据。
此处对缓存组件可用性的判断,仅是针对能否由缓存组件中调取已经存储在该缓存组件中的缓存数据。若缓存组件可用,则将从设置在服务器端的缓存组件中调取相关的缓存数据,其中的缓存数据可以是根据客户端首次发出的数据请求中包含的第一数据标识而生成的缓存数据,也可以是根据客户端非首次发出的数据请求中包含的第一数据标识生成的缓存数据。该缓存数据是预先存储在缓存组件中的。由于缓存组件可用,当客户端再次发出包含有第一数据标识的数据请求时,直接由该缓存组件中调取相应的缓存数据。
S402:缓存组件不可用,根据第一数据标识生成缓存数据。
若缓存组件不可用,则将根据第一数据标识,由各个数据端口收集相关信息,形成相应的缓存数据。
在缓存组件不可用的情况下,如果不再发送数据请求,那么本公开提供的缓存数据调取方法将就此结束。如果还将继续发送相应的数据请求,本公开还将继续执行图5所示的步骤。
进一步地,如图5所示,作为另一种实施例,在执行完步骤S402后,即根据第一数据标识生成缓存数据之后,本公开实施例提供的缓存数据调取方法500还包括一下步骤。
S501:整合形成第二数据标识,并反馈至客户端。
在步骤S402的基础上,若缓存组件不可用,根据第一数据标识生成缓存数据,并根据第一数据标识和相应的缓存数据,整合处理得到第二数据标识,并将第二数据标识反馈和存储与客户端。当客户端再次发起数据请求时,由于数据请求中包含第二数据标识,则解析第二数据标识,并获取相应的缓存数据。
已经预先储存在缓存组件中的缓存数据,由于在再次发起相应的数据请求时,该缓存组件发生了故障,不能由该缓存组件中调取相应的缓存数据。为了解决此问题,在实际的应用中,可以通过本公开提供另一实施例来实现。
作为另一种可能的实施例,该实施例包含有图2所示的步骤,这里对相同的实施步骤不再赘述。如图6所示,在步骤S2021中在缓存组件中缓存根据第一数据标识生成缓存数据之后,该缓存数据调取方法600还包括如下步骤。
S601:整合形成第二数据标识,并反馈至客户端。
当再次发起数据请求时,由于缓存组件不可用,则将整合在步骤S2021中获得的第一数据标识和相应的缓存数据,以形成第二数据标识,并将第二数据标识反馈至客户端。由于客户端再次发送的数据请求中包含第二数据标识,则解析存储在客户端的第二数据标识,生成和调取相应的缓存数据。
该方法旨在解决当预先储存在缓存组件中的缓存数据,由于在再次发起相应的数据请求时,该缓存组件发生了故障,不能由该缓存组件中调取相应的缓存数据的情况。
在本公开提供的实施例中,整合第一数据标识和缓存数据的得到第二数据标识包括,可以将缓存数据打包为JSON格式字符串,并将JSON格式字符串与第一数据标识拼接得到第二数据标识。若第一数据标识为“uid=1001”,相应的缓存数据为“Param0:aaa”、“Param1:bbb”、“Param2:ccc”、“Param3:ddd”、“Param4:eee”,那么第二数据标识则可以为uid=1001${“Param0:aaa”、“Param1:bbb”、“Param2:ccc”、“Param3:ddd”、“Param4:eee”}。
除此之外,还可以将缓存数据打包为数据序列化字符串或xml格式字符串。
将缓存数据打包为JSON格式字符串,可以方便在客户端与服务器端进行传输与解析。
作为一种变形,由第一数据标识和相应的缓存数据整合形成的第二数据标识中,其中,JSON格式字符串和第一数据标识之间可以设置有指定标识符。
其中,指定标识符可以包括截取标识符,即可以在截取标识符的左侧设置有第一标识符,截取标识符的右侧设置有缓存数据,通过读取该截取标识符,来快速解析出第二标识符中的缓存数据。
指定标识符还可以包括识别标识符,通过识别标识符可以用来区分第一数据标识和第二数据标识。
在一种可能的实施例中,由第一数据标识和相应的缓存数据整合形成的第二数据标识中,其中,JSON格式字符串和第一数据标识之间设置的指定标识符可以同时包括截取标识符和识别标识符。
在一种可能的实施例中,确定数据标识的数据标识类型,可以通过判断数据标识中是否包含指定标识符来确定。若数据标识中包含指定标识符,则数据标识为第二数据标识;若数据标识中不包含指定标识符,则数据标识为第一数据标识。例如,根据上述的描述,指定标识符为识别标识符,若数据标识中包含该识别标识符,则该数据标识即为第二数据标识;若数据标识中不包含该识别标识符,则该数据标识即为第一数据标识。
又一种实施例中,为了能够提供数据传递的安全性,还可以对整合形成的第二数据标识进行加密处理。即可以通过对JSON格式字符串的数据进行加密,后再按照相应的规则进行解密处理。例如,可以将JSON格式字符串的数据按照一定的规则打乱排列顺序,以此加密处理,后再利用相同的规则对该加密的字符串进行解密。另外,对于对JSON格式字符串的加密,还可以采用非对称加密方法RSA进行加密,相应的,也会利用相同的规则进行解密处理。
基于与缓存数据调取方法相同的发明构思,本公开实施例还提供一种缓存数据调取装置700。
如图7所示,一种缓存数据调取装置700包括获取数据请求模块701、判断数据标识类型模块702和获取缓存数据模块。下面将对各个模块进行详细的介绍。
获取数据请求模块701:用于获取客户端发送的数据请求,数据请求中包括数据标识。
判断数据标识类型模块702:用于确定数据标识的数据标识类型,数据标识类型为第一数据标识或第二数据标识,第一数据标识用于标识缓存数据,第二数据标识是对第一数据标识和缓存数据进行整合并反馈至客户端的数据标识。
获取缓存数据模块703:若数据标识为第二数据标识,则解析第二数据标识得到缓存数据;若数据标识为第一数据标识,则根据缓存组件可用性调取缓存数据,缓存组件用来缓存缓存数据。
在一例中,在获取到客户端发送的首次数据请求之际,缓存数据调取装置还用于:根据首次数据请求中包括的第一数据标识生成所述缓存数据;判断缓存组件是否可用;若缓存组件可用,则在缓存组件中缓存根据第一数据标识生成的缓存数据,并向客户端反馈第一数据标识;若缓存组件不可用,则向客户端反馈第二数据标识,第二数据标识中包括第一数据标识和缓存数据。
在一例中,解析第二数据标识得到缓存数据之后,该装置还用于:判断缓存组件是否可用;若缓存组件可用,则在缓存组件中缓存从第二数据标识中解析得到的缓存数据,并向客户端反馈第一数据标识。
在一例中,根据缓存组件可用性调用缓存数据,包括:若缓存组件可用,则从缓存组件中调用缓存数据;若缓存组件不可用,则根据第一标识生成缓存数据。
在一例中,根据第一标识生成缓存数据之后,该装置还用于:整合第一数据标识和缓存数据得到第二数据标识,向客户端反馈第二数据标识。
在一例中,整合第一数据标识和缓存数据得到第二数据标识,包括:将缓存数据打包为JSON格式字符串;将JSON格式字符串与第一数据标识拼接得到第二数据标识。
在一例中,JSON格式字符串与第一数据标识之间设置有指定标识符。
在一例中,确定数据标识的数据标识类型,包括:判断数据标识中是否包含指定标识符;若数据标识中包含指定标识符,则数据标识为第二数据标识;若数据标识中不包含指定标识符,则数据标识为第一数据标识。
可以理解的是,本公开实施例中涉及的缓存数据调取装置700中的各个模块单元所实现的功能与上文中描述的缓存数据调取方法中的步骤相对应,其具体实现和技术效果请参见上文对于方法步骤描述,在此不再赘述。
进一步可以理解的是,本公开实施例涉及的缓存数据调取装置700的结构(包括各模块单元的名称、连接关系)仅是进行示意性说明,该基于与本公开实施例涉及的缓存数据调取方法相同发明构思所提供缓存数据调取装置的结构并不局限于本公开提供的示意图,也不局限于包括上述涉及的模块单元。
本公开的一个实施方式提供的一种电子设备,其中,该电子设备包括存储器、处理器、输入/输出(Input/Output,I/O)接口。其中,存储器,用于存储指令。处理器,用于调用存储器存储的指令执行本公开实施例的用于缓存数据调取方法。其中,处理器分别与存储器、I/O接口连接,例如可通过总线系统和/或其他形式的连接机构进行连接。存储器可用于存储程序和数据,包括本公开实施例中涉及的用于缓存数据调取的程序,处理器通过运行存储在存储器的程序从而执行电子设备的各种功能应用以及数据处理。
本公开实施例中处理器可以采用数字信号处理器(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现,所述处理器可以是中央处理单元(Central Processing Unit,CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。
本公开实施例中的存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(Random Access Memory,RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(Read-OnlyMemory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)等。
本公开实施例中,I/O接口可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本公开实施例中I/O接口可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克风、扬声器、和触控面板等中的一个或多个。
在一些实施方式中,本公开提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行上文所述的任何方法。
尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本公开的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。
Claims (10)
1.一种缓存数据调取方法,其中,所述方法包括:
在获取到客户端发送的首次数据请求之际,根据所述首次数据请求中包括的第一数据标识生成缓存数据;
判断缓存组件是否可用;
若所述缓存组件可用,则在所述缓存组件中缓存根据所述第一数据标识生成的所述缓存数据,并向所述客户端反馈所述第一数据标识;
若所述缓存组件不可用,则向所述客户端反馈第二数据标识;
获取客户端发送的数据请求,所述数据请求中包括数据标识;
确定所述数据标识的数据标识类型,所述数据标识类型为所述第一数据标识或所述第二数据标识,所述第一数据标识用于标识所述缓存数据,所述第二数据标识是对第一数据标识和缓存数据进行整合并反馈至所述客户端的数据标识;
若所述数据标识为第二数据标识,则解析所述第二数据标识得到所述缓存数据;
若所述数据标识为第一数据标识,则根据缓存组件可用性调取所述缓存数据,所述缓存组件用来缓存所述缓存数据。
2.根据权利要求1所述的方法,其中,解析所述第二数据标识得到所述缓存数据之后,所述方法还包括:
判断所述缓存组件是否可用;
若所述缓存组件可用,则在所述缓存组件中缓存从所述第二数据标识中解析得到的所述缓存数据,并向所述客户端反馈所述第一数据标识。
3.根据权利要求2所述的方法,其中,根据缓存组件可用性调取所述缓存数据,包括:
若所述缓存组件可用,则从所述缓存组件中调用所述缓存数据;
若所述缓存组件不可用,则根据所述第一数据标识生成缓存数据。
4.根据权利要求1或3所述的方法,其中,根据所述第一数据标识生成缓存数据之后,所述方法还包括:
整合所述第一数据标识和所述缓存数据得到第二数据标识,向所述客户端反馈所述第二数据标识。
5.根据权利要求1所述的方法,其中,所述整合所述第一数据标识和所述缓存数据得到第二数据标识,包括:
将所述缓存数据打包为JSON格式字符串;
将所述JSON格式字符串与所述第一数据标识拼接得到所述第二数据标识。
6.根据权利要求5所述的方法,其中,所述JSON格式字符串与所述第一数据标识之间设置有指定标识符。
7.根据权利要求6所述的方法,其中,确定所述数据标识的数据标识类型,包括:
判断所述数据标识中是否包含所述指定标识符;
若所述数据标识中包含所述指定标识符,则所述数据标识为第二数据标识;
若所述数据标识中不包含所述指定标识符,则所述数据标识为第一数据标识。
8.一种缓存数据调取装置,其中,所述装置包括:
获取数据请求模块:用于在获取到客户端发送的首次数据请求之际,根据所述首次数据请求中包括的第一数据标识生成缓存数据;
判断模块,用于判断缓存组件是否可用;若所述缓存组件可用,则在所述缓存组件中缓存根据所述第一数据标识生成的所述缓存数据,并向所述客户端反馈所述第一数据标识;若所述缓存组件不可用,则向所述客户端反馈第二数据标识;
所述获取数据请求模块还用于:获取客户端发送的数据请求,所述数据请求中包括数据标识;
判断数据标识类型模块:用于确定所述数据标识的数据标识类型,所述数据标识类型为第一数据标识或第二数据标识,所述第一数据标识用于标识所述缓存数据,所述第二数据标识是对第一数据标识和缓存数据进行整合并反馈至所述客户端的数据标识;
获取缓存数据模块:若所述数据标识为第二数据标识,则解析所述第二数据标识得到所述缓存数据;
若所述数据标识为第一数据标识,则根据缓存组件可用性调取所述缓存数据,所述缓存组件用来缓存所述缓存数据。
9.一种电子设备,其中,所述电子设备包括:
存储器,用于存储指令;以及
处理器,用于调用所述存储器存储的指令执行权利要求1-7中任一项所述的一种缓存数据调取方法。
10.一种计算机可读存储介质,其中,
所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时,执行权利要求1-7中任一项所述的一种缓存数据调取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910556209.9A CN110275901B (zh) | 2019-06-25 | 2019-06-25 | 一种缓存数据调取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910556209.9A CN110275901B (zh) | 2019-06-25 | 2019-06-25 | 一种缓存数据调取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275901A CN110275901A (zh) | 2019-09-24 |
CN110275901B true CN110275901B (zh) | 2021-08-24 |
Family
ID=67962359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910556209.9A Active CN110275901B (zh) | 2019-06-25 | 2019-06-25 | 一种缓存数据调取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275901B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111026945B (zh) * | 2019-12-05 | 2024-01-26 | 北京创鑫旅程网络技术有限公司 | 多平台爬虫调度方法、装置和存储介质 |
CN113360307B (zh) * | 2021-05-31 | 2022-09-20 | 珠海大横琴科技发展有限公司 | 一种数据处理方法和装置 |
CN113849255B (zh) * | 2021-09-17 | 2024-04-16 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798793B1 (en) * | 2014-12-30 | 2017-10-24 | EMC IP Holding Company LLC | Method for recovering an index on a deduplicated storage system |
CN107291947A (zh) * | 2016-09-21 | 2017-10-24 | 广州特道信息科技有限公司 | 一种半结构化数据查询的方法和分布式NewSQL数据库系统 |
CN108228817A (zh) * | 2017-12-29 | 2018-06-29 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN109271359A (zh) * | 2018-11-20 | 2019-01-25 | 北京千丁互联科技有限公司 | 日志信息处理方法、装置、电子设备及可读存储介质 |
CN109474674A (zh) * | 2018-10-26 | 2019-03-15 | 腾讯科技(成都)有限公司 | 内容的传输方法和装置、存储介质、电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190095107A1 (en) * | 2017-09-28 | 2019-03-28 | Intel Corporation | Data classification for placement within storage devices |
-
2019
- 2019-06-25 CN CN201910556209.9A patent/CN110275901B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798793B1 (en) * | 2014-12-30 | 2017-10-24 | EMC IP Holding Company LLC | Method for recovering an index on a deduplicated storage system |
CN107291947A (zh) * | 2016-09-21 | 2017-10-24 | 广州特道信息科技有限公司 | 一种半结构化数据查询的方法和分布式NewSQL数据库系统 |
CN108228817A (zh) * | 2017-12-29 | 2018-06-29 | 华为技术有限公司 | 数据处理方法、装置和系统 |
CN109474674A (zh) * | 2018-10-26 | 2019-03-15 | 腾讯科技(成都)有限公司 | 内容的传输方法和装置、存储介质、电子装置 |
CN109271359A (zh) * | 2018-11-20 | 2019-01-25 | 北京千丁互联科技有限公司 | 日志信息处理方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110275901A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275901B (zh) | 一种缓存数据调取方法及装置 | |
US10089082B2 (en) | Visual devops systems and methods | |
US20220245128A1 (en) | Utilizing Independently Stored Validation Keys to Enable Auditing of Instrument Measurement Data Maintained in a Blockchain | |
CN110601880B (zh) | 一种云平台、业务处理方法、命令接口及计算机设备 | |
KR20200093007A (ko) | 모델 훈련 시스템 및 방법과, 저장 매체 | |
CN110177079B (zh) | 智能合约的调用系统及调用方法 | |
JP2022530645A (ja) | コンポーネントベースのユーザインターフェースのための宣言型の反応的なデータ層 | |
US8660833B2 (en) | Method, computer program product and apparatus for providing an interactive network simulator | |
CN108287894B (zh) | 数据处理方法、装置、计算设备及存储介质 | |
EP3058481B1 (en) | Acceleration based on cached flows | |
WO2020015199A1 (zh) | 暗网的安全性评估方法、服务器及计算机可读存储介质 | |
US20170126719A1 (en) | Protection via Webpage Manipulation | |
CN112527414B (zh) | 一种基于前端的数据处理方法、装置、设备及存储介质 | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及系统 | |
CN111598575A (zh) | 业务流程控制方法、装置、电子设备和可读存储介质 | |
CN111651442A (zh) | 一种数据报送方法、装置、电子设备及存储介质 | |
CN114979103A (zh) | 开放api集成整合及管理方法及计算机设备 | |
CN108255967B (zh) | 存储过程的调用方法、装置、存储介质及终端 | |
CN112506481A (zh) | 业务数据交互方法、装置、计算机设备和存储介质 | |
CN113297153A (zh) | 数据导出方法、装置、设备及存储介质 | |
CN109995773B (zh) | 数据处理方法和装置 | |
CN111400027A (zh) | 一种分布式任务处理方法、装置及系统 | |
CN112734349A (zh) | 接口生成、数据调用方法、装置和电子设备 | |
US11023672B1 (en) | Dynamic service injection | |
CN117170823B (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 |