技术领域本申请涉及网络通信技术领域,尤其涉及识别网络关系的方法、装置及服务器。
背景技术:
随着互联网的快速发展和网络应用的普及,许多用户通过不同的终端设备产生了大量的网络应用数据,以及用户与用户之间也留下了大量的信息交互数据。因此,如何有效快速地识别用户与终端设备、以及用户与用户之间的网络关系则变得尤为重要,进而能够根据该网络关系保证网络应用的安全性。现有技术中,识别网络关系的方法一般采用迭代查询识别的方法。该迭代查询指的是,首先查找用户的关系网络中的好友,然后针对每个好友,依次迭代,查询到各个好友的常用终端设备,从而得到用户的关系网络中的所有终端设备,最后,在用户的关系网络中的所有终端设备中查询待识别的终端设备,若查询到,则判定用户和待识别的终端设备存在网络关联,否则,则判定用户和待识别的终端设备不存在网络关联。但是,当用户的关系网络比较复杂时,利用迭代查询识别则使得迭代次数大大增加,会导致每秒查询率(QueryPerSecond,QPS)大幅攀升,严重影响网络应用的实时性。
技术实现要素:
本申请提供识别网络关系的方法、装置及服务器,以解决现有技术中当用户的关系网络比较复杂时,利用迭代查询识别则使得迭代次数大大增加,会导致QPS大幅攀升,严重影响网络应用的实时性的问题。根据本申请实施例的第一方面,提供一种识别网络关系的方法,所述方法包括:获取待识别网络关系的第一主体和第二主体;在所述第一主体和第二主体对应的键值存储数据库中查询所述第一主体对应的第一键值、以及查询所述第二主体对应的第二键值;当所述第一键值与所述第二键值包括相同的信息时,则判定所述第一主体与所述第二主体具有网络关系。根据本申请实施例的第二方面,提供一种识别网络关系的装置,所述装置包括:获取单元,用于获取待识别网络关系的第一主体和第二主体;查询单元,用于在所述第一主体和第二主体对应的键值存储数据库中查询所述第一主体对应的第一键值、以及查询所述第二主体对应的第二键值;判定单元,用于当所述第一键值与所述第二键值包括相同的信息时,则判定所述第一主体与所述第二主体具有网络关系。根据本申请实施例的第三方面,提供服务器,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:获取待识别网络关系的第一主体和第二主体;在所述第一主体和第二主体对应的键值存储数据库中查询所述第一主体对应的第一键值、以及查询所述第二主体对应的第二键值;当所述第一键值与所述第二键值包括相同的信息时,则判定所述第一主体与所述第二主体具有网络关系。本申请实施例中,通过获取待识别网络关系的第一主体和第二主体,并在第一主体和第二主体对应的键值存储数据库中查询第一主体对应的第一键值、以及查询第二主体对应的第二键值,当第一键值与第二键值包括相同的信息时,则判定第一主体与第二主体具有网络关系,从而降低了QPS、节省了存储空间,还提高了网络应用的实时性。附图说明图1为本申请实施例的识别网络关系的场景示意图;图2为本申请识别网络关系的方法的一个实施例流程图;图3为本申请实施例的识别网络关系的另一场景示意图;图4为本申请实施例的识别网络关系的另一场景示意图;图5为本申请实施例的识别网络关系的另一场景示意图;图6为本申请识别网络关系的装置的一个实施例框图;图7为本申请识别网络关系的装置的另一个实施例框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1,为本申请实施例的识别网络关系的场景示意图。图1场景中包括:用户和终端设备。其中,终端设备可以包括各种智能手机、平板电脑、PC(PersonalComputer,个人计算机)等。本申请实施例的目的是识别用户和终端设备之间是否具有网络关系、或者用户和用户之间是否具有网络关系。当识别用户和终端设备之间是否具有网络关系时,可以利用用户的关系网络,该关系网络包括用户的好友和好友的常用设备,如果待识别的终端设备是好友的常用设备,则用户和终端设备具有网络关系;如果待识别的终端设备不是好友的常用设备,则用户和终端设备不具有网络关系。当识别用户和用户之间是否具有网络关系时,可以利用两个用户是否属于同一网络来判断,如果两个用户属于同一网络,则两个用户之间具有网络关系,若果两个用户不属于同一网络,则两个用户之间不具有网络关系。现有技术中采用的迭代查询方法来识别用户和终端设备之间是否具有网络关系、或者用户和用户之间是否具有网络关系,而本申请实施例中采用时空平衡网络关系识别方法来识别,即通过并行的两次查询,并根据查询结果来判定用户和终端设备之间是否具有网络关系、或者用户和用户之间是否具有网络关系,从而降低了QPS、节省了存储空间,还提高了网络应用的实时性。参见图2,为本申请识别网络关系的方法的一个实施例流程图,该方法可以应用在网络服务器上,并且能够识别用户和终端设备之间是否具有网络关系、或者用户和用户之间是否具有网络关系,所述方法包括:步骤210:获取待识别网络关系的第一主体和第二主体。其中,第一主体可以为待识别的用户,第二主体可以为待识别的终端设备,目的是识别用户和终端设备之间是否具有网络关系;或者,第一主体为可以待识别的第一用户,第二主体为待识别的第二用户,目的是识别用户之间是否具有网络关系。步骤220:在第一主体和第二主体对应的键值存储数据库中查询所述第一主体对应的第一键值、以及查询所述第二主体对应的第二键值。本申请实施例中,根据第一主体和第二主体的不同,可以有如下不同的查询方式:第一种方式,当第一主体为用户,第二主体为终端设备时,此时对应的键值存储数据库可以包括第一键值存储子数据库和第二键值存储子数据库。其中,第一键值存储子数据库包括用户和该用户的关联用户,第一键值存储子数据库包括终端设备和该终端设备的使用用户。另外,第一键值存储子数据库和第二键值存储子数据库也可以不是键值存储数据库的两个子数据库,而是两个单独的数据库。在这里,只是以两个子数据库为例,说明具体的查询过程。在第一键值存储子数据库中查询待识别的用户的关联用户,并将查询到的所有关联用户组成第一键值;以及,在第二键值存储子数据库中查询待识别的终端设备的使用用户,并将查询到的所有使用用户组成所述第二键值。比如:第一主体为用户A,在第一键值存储子数据库中查询到用户A的关联用户即好友A、好友B、好友C和好友D,则该好友A、好友B、好友C和好友D组成第一键值;第二主体为终端设备X,在第二键值存储子数据库中查询到终端设备X的使用用户即好友B和好友F,则好友B和好友F组成第二键值。另外,当在第一键值存储子数据库中没有查询到待识别的用户的关联用户时,则得到的第一键值为空集即不包括任何信息,或者在第二键值存储子数据库中没有查询到待识别的用户的使用用户,则得到的第二键值为空集即不包括任何信息。第二种方式,当第一主体为第一用户,第二主体为第二用户时,此时对应的键值存储数据库包括处于同一网络的所有用户、以及各个用户的标签。在该键值存储数据库中也是以Key-Value格式进行存储,网络用户为Key,该网络用户的标签为Value,并且,处于同一网络的所有用户的标签皆相同。其中,该标签可以是预先设定的值,比如:1。在键值存储数据库查询第一用户的标签,该第一用户的标签为第一键值;以及,在键值存储数据库中查询第二用户的标签,该第二用户的标签为第二键值。比如,处于同一网络的所有用户的标签均设定为1,则查询到的第一键值和第二键值皆为1。另外,当在键值存储数据库没有查询到第一用户的标签,则得到的第一键值为空集即不包括任何信息;当在键值存储数据库没有查询到第二用户的标签,则得到的第二键值为空集即不包括任何信息。步骤230:当第一键值与所述第二键值包括相同的信息时,则判定第一主体与第二主体具有网络关系。其中,当在第一键值为空集和/或第二键值为空集时,则直接判定第一主体和第二主体不具有网络关系。本申请实施例中,根据第一主体和第二主体的不同,可以有如下不同的判定方式:第一种方式,当第一主体为用户,第二主体为终端设备时,将第一键值中的关联用户和第二键值中的使用用户进行比较,当至少一个关联用户和使用用户相同时,则判定待识别的用户和待识别的终端设备具有网络关系。比如:第一主体为用户A,在第一键值存储子数据库中查询到第一键值中的关联用户为好友A、好友B、好友C和好友D;第二主体为终端设备X,在第二键值存储子数据库中查询到第二键值中的使用用户为好友B和好友F,将上述好友A、好友B、好友C和好友D、以及好友B和好友F进行一一比较,发现好友B既是用户A的关联用户,又是终端设备X的使用用户,则判定用户A和终端设备X具有网络关系。另外,当在第一键值为空集即不包括任何信息、和/或第二键值为空集即不包括任何信息时,则直接判定用户和终端设备不具有网络关系。第二种方式,当第一主体为第一用户,第二主体为第二用户时,将第一用户的标签和第二用户的标签进行比较,当第一用户的标签与第二用户的标签相同时,则判定第一用户和第二用户具有网络关系。另外,当在第一键值为空集即不包括任何信息、和/或第二键值为空集即不包括任何信息时,则直接判定第一用户和第二用户不具有网络关系。由上述实施例可见,用户和该用户的关联用户、以及终端设备和该终端设备的使用用户皆以键值形式进行存储,仅仅需要两次查询并根据查询结果就可以判定用户和终端设备之间是否具有网络关系;或者,同一网络的所有用户和用户的标签以键值形式进行存储,仅仅需要两次查询并根据查询结果就可以判定用户和另一用户之间是否具有网络关系,从而降低了QPS、节省了存储空间,还提高了网络应用的实时性。进一步地,本申请识别网络关系的方法还包括:建立键值存储数据库。其中,该键值存储数据库可以根据第一主体和第二主体的不同进行建立的数据库,也可以利用预先建立的与该第一主体和第二主体对应的数据库。其中,根据第一主体和第二主体的不同,可以有如下不同的建立方式:第一种方式,当第一主体为用户,第二主体为终端设备时,建立的存储数据库可以包括第一键值存储子数据库和第二键值存储子数据库。其中,第一键值存储子数据库包括用户和该用户的关联用户,用户为Key,该用户关联的关联用户为Value;第二键值存储子数据库包括终端设备和该终端设备的使用用户,终端设备为Key,该终端设备的使用用户为Value。第二种方式,当第一主体为第一用户,第二主体为第二用户时,建立的键值存储数据库包括处于同一网络的所有用户、以及所述用户的标签,用户为Key,用户的标签为Value。其中,位于同一网络的所有用户的标签皆相同。比如,所有标签皆设为1。上述处于同一网络的用户可以是同一用户的好友,也可以是同一公司的员工等。参见图3,为本申请实施例的识别网络关系的场景示意图。该场景示意图展现了识别终端设备X和用户A之间是否具有网络关系的简单过程。图3场景中包括:用户好友关系对以及设备用户关系对。其中,用户好友关系对指的是用户A,以及用户A的关联用户好友A、好友B、好友C和好友D;用户B,以及用户B的关联用户好友E和好友F等。设备用户关系对指的是终端设备11,以及好友A;终端设备X,以及好友B和好友F。基于用户好友关系对可以建立一个数据库,包括用户和该用户关联的关联用户,并以键值(Key-Value)格式进行存储,用户为Key,该用户关联的关联用户为Value。比如,用户A、以及用户A的关联用户以Key-Value格式存储在数据库中,则根据用户A可以在该数据库中查询到该用户A的关联用户即好友A、好友B、好友C和好友D。基于设备用户关系对可以建立另一个数据库,包括终端设备和该终端设备的使用用户,也是以Key-Value格式进行存储,终端设备为Key,该终端设备的使用用户为Value。比如,终端设备X、以及该终端设备X的使用用户即好友B和好友F以Key-Value格式存储在该另一数据库中,则根据终端设备X可以在该另一数据库中查询到该终端设备X的终端设备X即好友B和好友F。其中,该终端设备的使用用户指的是经常使用该终端设备的使用用户,即常用用户。上述两个数据库可以是两个单独的数据库,也可以是一个数据库中的两个子数据库。在判断用户A和终端设备X之间是否具有网络关系时,可以在上述的一个数据库中查询到与用户A关联的好友A、好友B、好友C和好友D,以及在另一数据库中查询到终端设备X的使用用户即好友B和好友F。将用户A关联的好友和终端设备X的使用用户进行一一比较,比较后得到好友B既是用户A关联的好友,又是终端设备X的使用用户,则判定用户A和终端设备X具有网络关系;若没有得到既是用户A关联的好友,又是终端设备X的使用用户时,则判定用户A和终端设备X不具有网络关系。由上述实施例可见,用户好友关系对以及设备用户关系对皆以键值形式进行存储,仅仅需要两次查询并根据查询结果就可以判定用户和终端设备之间是否具有网络关系,与现有技术中的迭代查询方法相比大大降低了QPS,与传统的穷举方法的用户和好友设备关系对相比,大大减少了存储数据量,从而节省了存储空间,并更好地保证了网络应用的实时性。下面以图4所提供的一个用户关系网络场景为例,分别计算本申请实施例中的终端设备和该终端设备的使用用户以键值形式进行存储时的存储数据量,以及传统的穷举方法中以用户和好友设备为关系对进行存储时的存储数据量。参见图4,为本申请实施例识别网络关系的另一场景示意图:图4场景中包括:用户1、以及用户1使用的终端设备1;用户2、、以及用户1使用的终端设备1;用户3、以及用户3使用的终端设备3;用户4、以及用户4使用的终端设备4;用户5、、以及用户5使用的终端设备5;用户6、以及用户6使用的终端设备6。其中,用户6和用户2是用户1的好友。以及类推,每个用户皆有两个好友。本申请实施例中的终端设备和该终端设备的使用用户即(终端设备、使用用户)的关系对以键值形式进行存储时的存储数据具体包括:(终端设备1、用户1);(终端设备2、用户2);(终端设备3、用户3);(终端设备4、用户4);(终端设备5、用户5);(终端设备6、用户6)。而传统的穷举方法中以用户和好友设备即(用户、好友设备)进行存储时的存储数据具体包括:(用户1、终端设备2);(用户1、终端设备6);(用户2、终端设备1);(用户2、终端设备3);(用户3、终端设备2);(用户3、终端设备4)。(用户4、终端设备3);(用户4、终端设备5);(用户5、终端设备4);(用户5、终端设备5);(用户6、终端设备1);(用户6、终端设备5)。由上述实施例可见,本申请实施例中需要存储的数据远远少于传统的穷举方法中需要存储的数据,从而大大减少了存储数据量,从而节省了存储空间。参见图5,为本申请实施例的识别网络关系的场景示意图。该场景示意图展现了识别用户A和用户B之间是否具有网络关系的简单过程。基于同一网络的所有用户可以建立一个数据库,该数据库包括用户和该用户的标签,并且以Key-Value格式进行存储,用户为Key,用户的标签为Value。比如,用户A、以及用户A的标签A以Key-Value格式存储在数据库中,则根据用户A可以在该数据库中查询到该用户A的标签A。其中,用户的标签可以是事先预设的一个值,比如,处于同一网络的所有用户的标签均为1。在判断用户A和用户B之间是否具有网络关系时,在上述数据库中查询用户A的标签A、以及查询用户B的标签B,将用户A的标签A和用户B的标签B进行比较,当二者相同时,则判定用户A和用户B具有网络关系。当在上述数据库中查询不到用户A的标签A或用户B的标签B时,则判定用户A和用户B不具有网络关系。由上述实施例可见,同一网络的所有用户和用户的标签以键值形式进行存储,仅仅需要两次查询并根据查询结果就可以判定用户和另一用户之间是否具有网络关系,从而降低了QPS、节省了存储空间,还提高了网络应用的实时性。与本申请识别网络关系的方法的实施例相对应,本申请还提供了识别网络关系的装置的实施例。本发明验证业务操作安全性的装置的实施例可以分别应用在终端或业务服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本发明识别网络关系的装置所在设备的一种硬件结构图,除了图6所示的CPU、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,对此图6不再分别示出。参见图6,为本申请识别网络关系的装置的一个实施例框图,该装置可以应用在网络服务器上,并可以用于执行图2所提供的识别网络关系的方法。该装置包括:获取单元61、查询单元62和判定单元63。其中,获取单元61用于获取待识别网络关系的第一主体和第二主体;查询单元62用于在所述第一主体和第二主体对应的键值存储数据库中查询所述第一主体对应的第一键值、以及查询所述第二主体对应的第二键值;判定单元63用于当所述第一键值与所述第二键值包括相同的信息时,则判定所述第一主体与所述第二主体具有网络关系。在一个可选的实现方式中:该装置还包括第一建立单元(图6中未示出)。其中,第一建立单元用于建立所述键值存储数据库,所述存储数据库包括第一键值存储子数据库和第二键值存储子数据库;其中,所述第一键值存储子数据库包括用户和所述用户的关联用户,所述第二键值存储子数据库包括终端设备和所述终端设备的使用用户。以及,所述查询单元62还用于在所述第一键值存储子数据库中查询所述待识别的用户的关联用户,所述查询到的所有关联用户组成所述第一键值;以及,在所述第二键值存储子数据库中查询所述待识别的用户的使用用户,所述查询到的所有使用用户组成所述第二键值。所述判定单元63还用于将所述第一键值中的关联用户和所述第二键值中的使用用户进行比较,当至少一个关联用户和使用用户相同时,则判定所述待识别的用户和所述待识别的终端设备具有网络关系。在另一个可选的实现方式中:该装置还包括第二建立单元(图6中未示出)。其中,第二建立单元用于建立所述键值存储数据库,所述第一键值存储数据库包括处于同一网络的所有用户、以及所述用户的标签,其中,所述同一网络的所有用户的标签皆相同。以及,所述查询单元62还用于在所述键值存储数据库中查询所述待识别的第一用户的标签,所述第一用户的标签为所述第一键值;以及,在所述键值存储数据库中查询所述待识别的第二用户的标签,所述第二用户的标签为所述第二键值。所述判定单元63还用于当所述第一用户的标签与所述第二用户的标签相同时,则判定所述待识别的第一用户和所述待识别的第二用户具有网络关系。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请实施例还提供了一种服务器,该服务器包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为:获取待识别网络关系的第一主体和第二主体;在所述第一主体和第二主体对应的键值存储数据库中查询所述第一主体对应的第一键值、以及查询所述第二主体对应的第二键值;当所述第一键值与所述第二键值包括相同的信息时,则判定所述第一主体与所述第二主体具有网络关系。由上述实施例可见,当识别第一主体和第二主体之间是否具有网络关系时,可以通过在第一主体和第二主体对应的键值存储数据库中查询第一主体对应的第一键值、以及查询第二主体对应的第二键值,以及仅仅需要两次查询并根据查询结果就可以判定第一主体和第二主体之间是否具有网络关系,从而降低了QPS、节省了存储空间,还提高了网络应用的实时性。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。