缓存数据的查找方法和装置的制造方法
【技术领域】
[0001] 本发明涉及计算机领域,具体而言,涉及一种缓存数据的查找方法和装置。
【背景技术】
[0002] 缓存可以表示对数据的一种存储方式,其中,相比于在磁盘存储器等落地式存储 设备中存储的数据来说,缓存的数据可以被相对快速地写入或读出。根据数据局部性原理, 由于访问过的数据通常会被再次访问,因此可以将访问频率较高的部分数据缓存起来,进 而具体业务的执行单元如处理器或服务器等可以优先访问缓存中提取数据,这样就加快了 数据访问速度。
[0003] 由此可见,缓存数据的目的是为了业务对其所需的缓存中的具体某个数据进行查 找,为达到这一目的,为发明人所知的常用的缓存数据的查找方式之一是利用物理地址直 接在缓存中读写数据。一般来说,利用物理地址读写数据通常可以实现较高的读写速度,然 而由于缓存数据的物理地址对于业务来说通常是不透明的,或者说业务无法识别在哪个物 理地址上存放的数据是业务所需的具有特定意义的数据。因此,作为一种改进的方式,用于 管理缓存读写的设备可以维护有一张映射表,该映射表中记录有为业务所知的标识项与缓 存数据的物理地址之间的映射关系,从而业务可以通过预先定义的标识项对缓存中的数据 进行读与。
[0004] 然而,上述查找方式及其对应的缓存数据的管理方式并不利于体现出多个数据之 间的关联,例如,若业务需要查找某一用户的相关信息,并且该相关信息包括多个方面的信 息,则业务通常需要先解析出该相关信息所包含的多个数据项以及多个数据项各自对应的 标识项,进而通知缓存管理相对独立地查找出各标识项所标识的数据。显然,这对业务自身 的功能提出了更高的要求,并且在大规模的数据读取的背景下,会显著地影响到业务的执 行效率。针对这一问题,目前尚未提出有效的解决方案。
【发明内容】
[0005] 本发明实施例提供了一种缓存数据的查找方法和装置,以至少解决在现有的缓存 数据的查找方式下业务访问缓存数据时需要执行较为复杂的逻辑从而导致的业务执行效 率较低的技术问题。
[0006] 根据本发明实施例的一个方面,提供了一种缓存数据查找方法,包括:获取用于对 缓存中的数据元素进行查找的查询条件,其中,上述缓存中的每个上述数据元素包括一个 或多个字段,每个上述字段包括字段类型和字段值,上述查询条件用于指示待查找的字段 类型和待查找的字段值;在上述缓存中查找具有满足上述查询条件的字段的数据元素;若 查找到上述具有满足上述查询条件的字段的数据元素,则从上述缓存中读出查找到的上述 数据元素。
[0007] 根据本发明实施例的另一方面,还提供了一种缓存数据查找装置,包括:获取单 元,用于获取用于对缓存中的数据元素进行查找的查询条件,其中,上述缓存中的每个上述 数据元素包括一个或多个字段,每个上述字段包括字段类型和字段值,上述查询条件用于 指示待查找的字段类型和待查找的字段值;查找单元,用于在上述缓存中查找具有满足上 述查询条件的字段的数据元素;输出单元,用于在查找到上述具有满足上述查询条件的字 段的数据元素时,从上述缓存中读出查找到的上述数据元素。
[0008] 在本发明实施例中,可以结合对缓存数据的结构的进一步定义,以提供基于查询 条件对缓存中的一个或多个数据进行查找的功能。具体地,在本发明实施例中,采用了数据 元素的形式实现对相互关联的数据的存储,其中,每个数据元素可以包括多个字段,每个字 段可以包括字段类型和字段值,相互关联的业务数据可以作为不同的字段值存入缓存中的 每个数据元素中,进而业务需要获取该相互关联的业务数据时,则可以基于特定的查询条 件查找到包括特定的业务数据的数据元素,并且,由于业务预先向缓存中存入数据或者说 字段值时,可以提前配置对应的字段类型,因此缓存中的业务数据对于业务来说是透明的。 通过上述方式,便可以简化业务侧的查询操作,比如业务服务器可以仅向缓存管理发送查 询条件,便可以获取到所需的业务数据,从而提高了业务的执行效率,进而解决了在现有的 缓存数据的查找方式下业务访问缓存数据时需要执行较为复杂的逻辑从而导致的业务执 行效率较低的技术问题。
【附图说明】
[0009] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0010] 图1是根据本发明实施例的一种可选的缓存数据查找方法的示意图;
[0011] 图2是根据本发明实施例的一种可选的缓存数据查找方法或装置的实施环境的 不意图;
[0012] 图3是根据本发明实施例的一种可选的缓存数据查找装置的示意图。
【具体实施方式】
[0013] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0014] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产 品或设备固有的其它步骤或单元。
[0015] 实施例1
[0016] 根据本发明实施例,提供了一种缓存数据查找方法,如图1所示,该方法包括:
[0017] S102 :获取用于对缓存中的数据元素进行查找的查询条件,其中,缓存中的每个数 据元素包括一个或多个字段,每个字段包括字段类型和字段值,查询条件用于指示待查找 的字段类型和待查找的字段值;
[0018] S104 :在缓存中查找具有满足查询条件的字段的数据元素;
[0019] S106:若查找到具有满足查询条件的字段的数据元素,则从缓存中读出查找到的 数据元素。
[0020] 应当明确的是,本发明实施例所要解决的问题之一是提供一种方法,以便于实现 对缓存的数据进行有效查找。
[0021 ] 具体地,在本发明实施例中,缓存可以表示对数据的一种存储方式,其中,相比于 在磁盘存储器等落地式存储设备中存储的数据来说,缓存的数据可以被相对快速地写入或 读出。根据数据局部性原理,由于访问过的数据通常会被再次访问,因此可以将访问频率较 高的部分数据缓存起来,进而具体业务的执行单元如处理器或服务器等可以优先访问缓存 中提取数据,这样就加快了数据访问速度。
[0022] 由此可见,缓存数据的目的是为了业务对其所需的缓存中的具体某个数据进行查 找,为达到这一目的,为发明人所知的常用的缓存数据的查找方式之一是利用物理地址直 接在缓存中读写数据。一般来说,利用物理地址读写数据通常可以实现较高的读写速度,然 而由于缓存数据的物理地址对于业务来说通常是不透明的,或者说业务无法识别在哪个物 理地址上存放的数据是业务所需的具有特定意义的数据。因此,作为一种改进的方式,用于 管理缓存读写的设备可以维护有一张映射表,该映射表中记录有为业务所知的标识项与缓 存数据的物理地址之间的映射关系,从而业务可以通过预先定义的标识项对缓存中的数据 进行读与。
[0023] 然而,上述查找方式及其对应的缓存数据的管理方式并不利于体现出多个数据之 间的关联,例如,若业务需要查找某一用户的相关信息,并且该相关信息包括多个方面的信 息,则业务通常需要先解析出该相关信息所包含的多个数据项以及多个数据项各自对应的 标识项,进而通知缓存管理相对独立地查找出各标识项所标识的数据。显然,这对业务自身 的功能提出了更高的要求,并且在大规模的数据读取的背景下,会显著地影响到业务的执 行效率。
[0024] 为解决这一问题,在本发明实施例中,可以结合对缓存数据的结构的进一步定义, 以提供基于查询条件对缓存中的一个或多个数据进行查找的功能。具体地,在本发明实施 例中,采用了数据元素的形式实现对相互关联的数据的存储,其中,每个数据元素可以包括 多个字段,每个字段可以包括字段类型和字段值,相互关联的业务数据可以作为不同的字 段值存入缓存中的每个数据元素中,进而业务需要获取该相互关联的业务数据时,则可以 基于特定的查询条件查找到包括特定的业务数据的数据元素,并且,由于业务预先向缓存 中存入数据或者说字段值时,可以提前配置对应的字段类型,因此缓存中的业务数据对于 业务来说是透明的。通过上述方式,便可以简化业务侧的查询操作,比如业务服务器可以仅 向缓存管理发送查询条件,便可以获取到所需的业务数据,从而提高了业务的执行效率,进 而解决了在现有的缓存数据的查找方式下业务访问缓存数据时需要执行较为复杂的逻辑 从而导致的业务执行效率较低的技术问题。
[0025] 下面将结合附图和具体的实施例对本发明技术方案及其工作原理进行更为详细 的描述。首先结合图2对本发明的技术方案的实施环境进行示例性地描述。
[0026] 图2示出了根据本发明实施例提供的查找方法的一种可行的实施环境。如图2所 示,在本发明实施例中,业务服务器202与缓存服务器204之间存在数据连接,以便于业务 服务器202在需要在设置于缓存服务器204的缓存中读写数据时,通过向缓存服务器204 发送的读写指令指示缓存服务器204执行对应的处理操作。进一步可选地,在本发明实施 例中,还可以设置有落地式存储服务器206,与缓存服务器204之间存在数据连接,以便于 在缓存空间不足时淘汰