掌桥专利:专业的专利平台
掌桥专利
首页

信息获取方法、装置、服务器、介质及产品

文献发布时间:2023-06-19 12:10:19


信息获取方法、装置、服务器、介质及产品

技术领域

本公开涉及通信技术领域,尤其涉及一种信息获取方法、装置、服务器、介质及产品。

背景技术

目前,一些社交应用程序或网络平台中均可以提供关注功能,若用户对某个对象,例如平台用户、公众号感兴趣,则可以点击关注控件,对其进行关注。同时,用户在访问某个对象时,客户端也会展示该用户的好友对该对象的关注信息,例如用户在访问公众号的主页时,会提示该用户有几个好友关注了这个公众号等。

相关技术中,当用户在访问某个公众号的主页时,客户端会向服务器发送信息获取请求,以获取该用户的好友对该公众号的关注信息。而服务器接收到该请求,首先会进行一次该用户的好友列表查询请求,然后对于每个好友,进行一次关注列表查询请求(每个好友请求一次),过滤出所有关注了该公众号的好友,返回给客户端。

在实现本公开的过程中,发明人发现相关技术中至少存在如下问题:相关技术中的好友关注信息的获取方式请求量较大,为服务器带来了较大的请求压力,在高并发的场景下,需要非常多的服务器资源来支撑这样的需求场景。

发明内容

本公开提供一种信息获取方法、装置、服务器、介质及产品,以至少解决相关技术中的信息获取方式,服务器的请求压力较大的问题。

本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种信息获取方法,包括:接收客户端发送的信息获取请求,信息获取请求包括客户端的访问对象的对象标识;在缓存数据中查询客户端对应的第一用户的缓存数据项,缓存数据包括多个用户的缓存数据项,其中,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合;在第一用户的缓存数据项的至少一个键值对中,查询访问对象的对象标识;向客户端发送第一用户的缓存数据项中访问对象的对象标识对应的用户标识集合。

在第一方面的一些可实现方式中,在接收客户端发送的信息获取请求之前,该方法还包括:获取多个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识;根据每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,建立每个用户的缓存数据项,得到缓存数据。

在第一方面的一些可实现方式中,该方法还包括:在用户与任一对象解除预设关联关系的情况下,删除任一对象对应的用户标识集合中用户的用户标识,任一对象是与用户具有预设关联关系的对象。

在第一方面的一些可实现方式中,该方法还包括:在多个用户中的第二用户与任一对象建立预设关联关系的情况下,在第二用户的社交关联用户的缓存数据项中查询任一对象的对象标识,第二用户为多个用户中的任一用户,任一对象是与第二用户不具有预设关联关系的对象;在查询到任一对象的对象标识的情况下,在任一对象对应的用户标识集合中添加第二用户的用户标识;或者,在未查询到任一对象的对象标识的情况下,在社交关联用户的缓存数据项中添加任一对象的对象标识,以及任一对象对应的第二用户的用户标识。

在第一方面的一些可实现方式中,该方法还包括:在第三用户与第四用户解除社交关联关系的情况下,删除第三用户的缓存数据项中第四用户的用户标识和第四用户的缓存数据项中第三用户的用户标识,第三用户和第四用户为多个用户中的任意两个用户。

在第一方面的一些可实现方式中,该方法还包括:在第五用户与第六用户新增社交关联关系的情况下,获取与第五用户具有预设关联关系的第一对象的对象标识,以及与第六用户具有预设关联关系的第二对象的对象标识,第五用户和第六用户为多个用户中的任意两个用户;在第六用户的缓存数据项中查询第一对象的对象标识,在查询到第一对象的对象标识的情况下,在第一对象对应的用户标识集合中添加第五用户的用户标识;或者,在未查询到第一对象的对象标识的情况下,在第六用户的缓存数据项中添加第一对象的对象标识,以及第一对象对应的第五用户的用户标识;在第五用户的缓存数据项中查询第二对象的对象标识,在查询到第二对象的对象标识的情况下,在第二对象对应的用户标识集合中添加第六用户的用户标识;或者,在未查询到第二对象的对象标识的情况下,在第五用户的缓存数据项中添加第二对象的对象标识,以及第二对象对应的第六用户的用户标识。

在第一方面的一些可实现方式中,在缓存数据中查询客户端对应的第一用户的缓存数据项,还包括:在缓存数据中未查询到第一用户的缓存数据项的情况下,获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识;根据第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,建立第一用户的缓存数据项;在缓存数据中添加第一用户的缓存数据项,更新缓存数据。

根据本公开实施例的第二方面,提供一种信息获取装置,包括:接收模块,被配置为执行接收客户端发送的信息获取请求,信息获取请求包括客户端的访问对象的对象标识;查询模块,被配置为执行在缓存数据中查询客户端对应的第一用户的缓存数据项,缓存数据包括多个用户的缓存数据项,其中,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合;查询模块,还被配置为执行在第一用户的缓存数据项的至少一个键值对中,查询访问对象的对象标识;发送模块,被配置为执行向客户端发送第一用户的缓存数据项中访问对象的对象标识对应的用户标识集合。

在第二方面的一些可实现方式中,该装置还包括:获取模块,被配置为执行在接收客户端发送的信息获取请求之前,获取多个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识;建立模块,被配置为执行根据每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,建立每个用户的缓存数据项,得到缓存数据。

在第二方面的一些可实现方式中,该装置还包括:删除模块,被配置为执行在用户与任一对象解除预设关联关系的情况下,删除任一对象对应的用户标识集合中用户的用户标识,任一对象是与用户具有预设关联关系的对象。

在第二方面的一些可实现方式中,该装置还包括:查询模块,还被配置为执行在多个用户中的第二用户与任一对象建立预设关联关系的情况下,在第二用户的社交关联用户的缓存数据项中查询任一对象的对象标识,第二用户为多个用户中的任一用户,任一对象是与第二用户不具有预设关联关系的对象;添加模块,被配置为执行在查询到任一对象的对象标识的情况下,在任一对象对应的用户标识集合中添加第二用户的用户标识;或者,在未查询到任一对象的对象标识的情况下,在社交关联用户的缓存数据项中添加任一对象的对象标识,以及任一对象对应的第二用户的用户标识。

在第二方面的一些可实现方式中,该装置还包括:删除模块,被配置为执行在第三用户与第四用户解除社交关联关系的情况下,删除第三用户的缓存数据项中第四用户的用户标识和第四用户的缓存数据项中第三用户的用户标识,第三用户和第四用户为多个用户中的任意两个用户。

在第二方面的一些可实现方式中,该装置还包括:获取模块,被配置为执行在第五用户与第六用户新增社交关联关系的情况下,获取与第五用户具有预设关联关系的第一对象的对象标识,以及与第六用户具有预设关联关系的第二对象的对象标识,第五用户和第六用户为多个用户中的任意两个用户;更新模块,被配置为执行在第六用户的缓存数据项中查询第一对象的对象标识,在查询到第一对象的对象标识的情况下,在第一对象对应的用户标识集合中添加第五用户的用户标识;或者,在未查询到第一对象的对象标识的情况下,在第六用户的缓存数据项中添加第一对象的对象标识,以及第一对象对应的第五用户的用户标识;更新模块,还被配置为执行在第五用户的缓存数据项中查询第二对象的对象标识,在查询到第二对象的对象标识的情况下,在第二对象对应的用户标识集合中添加第六用户的用户标识;或者,在未查询到第二对象的对象标识的情况下,在第五用户的缓存数据项中添加第二对象的对象标识,以及第二对象对应的第六用户的用户标识。

在第二方面的一些可实现方式中,该装置还包括:获取模块,被配置为执行在缓存数据中未查询到第一用户的缓存数据项的情况下,获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识;建立模块,被配置为执行根据第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,建立第一用户的缓存数据项;更新模块,被配置为执行在缓存数据中添加第一用户的缓存数据项,更新缓存数据。

根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面的信息获取方法。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面的信息获取方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机指令,当计算机指令被处理器执行时实现如第一方面的信息获取方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

在本公开实施例中,由于缓存数据中包括多个用户的缓存数据项,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合,因此当接收到客户端发送的信息获取请求时,可以直接基于该信息获取请求中客户端的访问对象的对象标识,在缓存数据中查询该客户端对应的第一用户的缓存数据项,并在第一用户的缓存数据项中,查询访问对象的对象标识,最后将访问对象的对象标识对应的用户标识集合返回给客户端。如此,在客户端对应的用户访问了某个对象的主页时,服务器只需要在该用户对应的缓存数据项中查询一次该访问对象的对象标识,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量,有效降低了服务器的请求压力。因而,本公开实施例可以解决相关技术中的信息获取方式,服务器的请求压力较大的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种信息获取的架构图。

图2是根据一示例性实施例示出的一种信息获取方法的流程图。

图3是根据一示例性实施例示出的另一种信息获取方法的流程图。

图4是根据一示例性实施例示出的又一种信息获取方法的流程图。

图5是根据一示例性实施例示出的一种信息更新方法的流程图。

图6是根据一示例性实施例示出的另一种信息更新方法的流程图。

图7是根据一示例性实施例示出的又一种信息更新方法的流程图。

图8是根据一示例性实施例示出的一种信息获取装置的框图。

图9是根据一示例性实施例示出的一种服务器的框图。

图10是根据一示例性实施例示出的用于信息获取方法的设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

如背景技术,相关技术中,当用户在访问某个公众号的主页时,客户端会向服务器发送信息获取请求,以获取该用户的好友对该公众号的关注信息,例如获取该用户有多少好友关注了该公众号的信息。这种情况下,服务器接收到客户端发送的请求,首先会进行一次该用户的好友列表查询请求,然后对于每个好友,进行一次关注列表查询请求(每个好友请求一次)。例如,该用户有100个好友,每个好友关注了80个公众号,则客户端的一次信息获取请求,在服务端会进行1次好友列表查询请求和100次关注列表查询请求,因此最终产生了101倍的读请求(查询请求)放大,为服务器带来了较大的请求压力,而在大多数应用场景下,都是只读取数据不涉及到数据修改的读请求,远远大于涉及到数据修改的写请求,因此在高并发的场景下,需要非常多的服务器资源来支撑这样的需求场景。

为了解决上述相关技术中存在的信息获取方式为服务器带来了较大的请求压力的问题,本公开提供了一种信息获取方法,在客户端对应的用户访问了某个对象的主页时,服务器只需要在该用户对应的缓存数据项中查询一次该访问对象的对象标识,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量,有效降低了服务器的请求压力,解决了相关技术中的信息获取方式为服务器带来了较大的请求压力的问题。

下面结合附图,通过具体的实施例及其应用场景对本公开实施例提供的信息获取方法进行详细地说明。

首先,本公开实施例所提供的信息获取方法,可以应用于如图1的架构中,具体结合图1进行详细说明。

图1是根据一示例性实施例示出的一种信息获取的架构图。

如图1所示,服务器100通过网络300与客户端200通信连接,以进行数据通信或交互。服务器100可以是互动服务器等。客户端200可以是,但不限于个人电脑(PersonalComputer,PC)、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。网络300可以是有线或无线网络。应注意的是,图1仅仅是一种示例,实际应用中客户端200的数量可按照实际需求设定。

本公开实施例中,客户端200(Client)又称为用户端,与服务器相对应。可选地,客户端可以对应应用程序,或者,客户端可以对应网页。本公开实施例对客户端对应的应用程序的类型不作限定,可选地,该应用程序的类型包括但不限于以下至少一种类型:社交类应用程序、视频播放类应用程序、即时通信类应用程序、购物类应用程序、资讯类应用程序。

本公开实施例中,服务器100用于为客户端200提供后台服务。例如,服务器100可以是上述社交类应用程序的后台服务器。服务器100可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。

下面将对本公开实施例提供的信息获取方法进行详细说明。

本公开实施例提供的信息获取方法可以应用于图1的服务器100中,可以理解的是,上述执行主体并不构成对本公开的限定。

图2是根据一示例性实施例示出的一种信息获取方法的流程图。

如图2所示,该信息获取方法可以包括S210-S240。

S210,接收客户端发送的信息获取请求,信息获取请求包括客户端的访问对象的对象标识。

在本公开的一些实施例中,访问对象可以为客户端访问的对象,该访问对象可以包括但不限于:账号、音频、视频、文章、商品。

在上述实施例中,对象标识即为标识该访问对象的信息,例如公众号的名称、用户的账号、商品的型号等。

需要说明的是,以上仅为访问对象的几种示例,本公开实施例对访问对象的具体形式或内容不作具体限定。

在本公开的一些实施例中,客户端的用户界面中可以包括一些操作控件,如按钮、滑块、图标等,以供用户进行操作。用户对上述操作控件的触控操作可以触发客户端访问访问对象,从而生成信息获取请求,例如用户对操作控件的点击输入、滑动输入、双击输入、长按输入等,本公开在此不作具体限定。

在一个示例中,访问对象为公众号,当客户端接收到用户对公众号对应图标的点击输入时,触发客户端访问该公众号的主页,并向服务器发送携带有该公众号标识的信息获取请求,该信息获取请求用于获取该用户的好友对该公众号的关注情况信息。

在又一个示例中,用户除了可以通过触控操作来触发客户端访问访问对象,生成信息获取请求之外,还可以通过语音、手势等方式来触发客户端生成信息获取请求。

需要说明的是,以上仅为触发客户端发送信息获取请求的几种示例,本公开实施例对信息获取请求的触发方式不作限定。

S220,在缓存数据中查询客户端对应的第一用户的缓存数据项,缓存数据包括多个用户的缓存数据项。

其中,每个用户的缓存数据项可以包括至少一个键值对,每个键值对可以包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合。

在这里,客户端对应的第一用户即为当前访问访问对象的用户,例如,第一用户为当前访问访问对象的用户账号对应的用户。

在本公开的一些实施例中,用户的社交关联用户可以包括与用户具有社交关联关系的用户,示例性地,该社交关联关系可以为好友关系。上述预设关联关系可以包括关注关系、收藏关系、观看关系、浏览关系、购买关系中的任意一项。

可选地,在一个示例中,上述对象可以为社交关联用户的关注公众号、关注博主等;或者,上述对象可以为社交关联用户的收藏文章、收藏音频等;或者,上述对象可以为社交关联用户的观看视频等;或者,上述第一对象可以为社交关联用户的加购商品等;或者,上述对象可以为社交关联用户购买过的商品等。

需要说明的是,以上仅为对象的几种示例,本公开实施例对对象的具体形式或内容不做具体限定。上述社交关联关系除了可以是好友关系,还可以关注关系、收藏关系等,本公开在此不做具体限定。

在本公开的一些实施例中,社交关联用户的标识可以用于表征用户的身份,例如用户账号、用户昵称、用户身份证号、用户对应的终端设备的标识等,本申请在此不作具体限定。

在本公开的一些实施例中,每个键值对(key-value)中的key为对象的对象标识,value为用户的社交关联用户中与该对象具有预设关联关系的社交关联用户的用户标识集合。

示例性地,预设关联关系为关注关系,用户A的社交关联用户包括用户B、用户C、用户D,三个社交关联用户对应的用户标识分别为b,c,d,用户A的缓存数据项为{m1[b,d],m2[b,c],m3[c],m4[d]}。其中,该缓存数据项中包括4个键值对,m1-m4分别为公众号M1-M4的对象标识。在这里,以键值对m1[b,d]为例,key为公众号M1的对象标识m1,value为用户A的所有社交关联用户中,关注了公众号M1的社交关联用户的用户标识集合[b,d],该用户标识集合中包括了用户B和用户D的标识b,d,用户B和用户C均关注了公众号M1。

S230,在第一用户的缓存数据项的至少一个键值对中,查询访问对象的对象标识。

在本公开的一些实施例中,第一用户的缓存数据项可以包括至少一个键值对,每个键值对包括对象的对象标识,以及第一用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合。

S240,向客户端发送第一用户的缓存数据项中访问对象的对象标识对应的用户标识集合。

作为一个具体的示例,客户端对应的第一用户为用户A,当客户端访问公众号M1的主页时,客户端向服务器发送携带有对象标识,即携带有公众号M1的标识m1的信息获取请求。当服务器接收到该信息获取请求时,如上述示例,在用户A的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d]}中查询对象标识m1,并在查询到的情况下,将m1对应的用户标识集合[b,d]返回给客户端。

需要说明的是,访问对象与第一用户的社交关联用户的预设关联关系不同,则客户端显示的信息也有所不同。

在一个示例中,访问对象可以为第一用户社交好友的关注对象,则客户端接收到用户标识集合[b,d]之后,可以显示“2位好友关注”的关注信息,或者可以显示“b,d关注”的关注信息。

在另一个示例中,访问对象可以为第一用户社交好友的加购对象,则客户端接收到用户标识集合[b,d]之后,可以显示“2位朋友加购”的加购信息。

在又一个示例中,访问对象可以为第一用户社交好友的收藏对象,则客户端接收到用户标识集合[b,d]之后,可以显示“2位朋友收藏”的收藏信息,或者可以显示“b,d两位朋友均已收藏哦”的收藏信息。

本公开实施例提供的信息获取方法,由于缓存数据中包括多个用户的缓存数据项,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合,因此当接收到客户端发送的信息获取请求时,可以直接基于该信息获取请求中客户端的访问对象的对象标识,在缓存数据中查询该客户端对应的第一用户的缓存数据项,并在第一用户的缓存数据项中,查询访问对象的对象标识。如此,在客户端对应的用户访问了某个对象的主页时,服务器只需要在该用户对应的缓存数据项中查询一次该访问对象的对象标识,并可以直接将访问对象的对象标识对应的用户标识集合返回给客户端,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量,有效降低了服务器的请求压力。

在本公开的一些实施例中,在S220接收客户端发送的信息获取请求之前,如图3所示,该方法还可以包括S310和S320:

S310,获取多个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识。

在本公开的一些实施例中,如图4所示,S310可以包括S311-S314:

S311,向第一服务器发送第一数据获取请求。

其中,第一数据获取请求可以包括用户的用户标识,第一服务器可以用于存储多个用户中每个用户的用户标识,以及每个用户对应的社交关联用户的用户标识。

S312,接收第一服务器基于第一数据获取请求返回的用户的至少一个社交关联用户的用户标识。

S313,对于至少一个社交关联用户中的每个社交关联用户,依次向第二服务器发送第二数据获取请求。

其中,每个第二数据获取请求包括一个社交关联用户的用户标识,第二服务器可以用于存储多个用户中每个用户的标识,以及每个用户对应的对象的对象标识,用户对应的对象即为与用户具有预设关联关系的对象。

S314,接收第二服务器基于第二数据获取请求,依次返回的与不同社交关联用户具有预设关联关系的对象的对象标识。

在本公开的一个示例中,第一服务器为好友服务器,第二服务器为关注服务器。以获取用户A的社交好友的用户标识,以及用户A社交好友关注的公众号的标识为例,服务器首先向好友服务器发送用户A的用户标识a,并接收好友服务器返回的用户A的社交好友用户B、用户C、用户D的用户标识{b,c,d}。然后服务器向关注服务器依次发送用户标识b,c,d,并接收关注服务器依次返回的用户B关注的公众号M1、公众号M2的标识m1,m2;用户C关注的公众号M2、公众号M3的标识m2,m3;用户D关注的公众号M1、公众号M4的标识m1,m4。

S320,根据每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,建立每个用户的缓存数据项,得到缓存数据。

在本公开的一个实施例中,S320可以具体包括:将对象的标识作为关键字,将与对象具有预设关联关系的社交关联用户的用户标识集合作为关键字的值,得到包括至少一个键值对的缓存数据项。

在本公开的一个示例中,以建立用户A的缓存数据项为例,如上所述,用户B关注的公众号M1、公众号M2的标识为m1,m2;用户C关注的公众号M2、公众号M3的标识为m2,m3;用户D关注的公众号M1、公众号M4的标识为m1,m4。对于公众号M1,key为m1,value为用户标识集合[b,d],即标识b,d对应的用户B和用户D均关注了公众号M1。相似地,对于公众号M2,key为m2,value为用户标识集合[b,c];对于公众号M3,key为m3,value为用户标识集合[c];对于公众号M4,key为m4,value为用户标识集合[d]。最终,得到用户A的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d]},该缓存数据项中包括4个key-value。

如此,通过获取每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,能够建立每个用户的缓存数据项,得到缓存数据。这样,服务器为每个用户都维护了一个缓存数据项,因此当需要获取该用户的所有好友对某个公众号的关注信息时,服务器可以直接在该用户的缓存数据项中查询该公众号的标识,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量。同时,在大多数应用场景下,服务器只读取数据不涉及到数据修改的读请求,远远大于涉及到数据修改的写请求,因此在高并发的场景下,需要非常多的服务器资源来支撑这样的需求场景,而建立每个用户的缓存数据项之后,该缓存数据项可以重复利用,有效减少读请求的请求量,,降低了服务器的请求压力。

在本公开的一些实施例中,为了保证服务器获取到的信息的准确性,该方法还可以包括:更新用户的缓存数据项,得到更新后的缓存数据。

在本公开的一些实施例中,该方法还可以包括:在用户与任一对象解除预设关联关系的情况下,删除任一对象对应的用户标识集合中用户的用户标识,任一对象是与用户具有预设关联关系的对象。

示例性地,预设关联关系为关注关系,以对用户A的缓存数据项进行更新为例,服务器存储了用户A的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d]}。其中,用户B、用户C、用户D的标识为b,c,d,用户B关注的公众号M1、公众号M2的标识为m1,m2;用户C关注的公众号M2、公众号M3的标识为m2,m3;用户D关注的公众号M1、公众号M4的标识为m1,m4。当用户B取消关注公众号M1时,服务器可以删除缓存数据项中m1对应的用户集合中[b,d]的标识b,得到更新后的缓存数据项{m1[d],m2[b,c],m3[c],m4[d]}。

如此,在用户与对象解除关联关系的情况下,例如取消关注某个公众号的情况下,服务器可以对缓存数据进行及时更新,删除缓存数据中该公众号对应的用户标识集合中的用户标识,从而实现缓存数据的有效更新,避免客户端在访问该公众号时,服务器返回的用户标识集合会包含已取消关注该公众号的用户的用户标识,提升返回信息的准确性。

在本公开的一些实施例中,在所有关注了对象的用户均取消关注对象的情况下,删除缓存数据中对象的标识,以及该对象对应的用户标识集合。

继续参照上述示例,以对用户A的缓存数据项进行更新为例,服务器存储了用户A的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d]}。当用户B取消关注了公众号M2,用户C取消关注了公众号M2和M3时,服务器删除缓存数据项中m2、m3,以及m2对应的用户标识集合[b,c]、m3对应的用户标识集合[c],得到更新后的缓存数据项{m1[b,d],m4[d]}。

在本公开的一些实施例中,图5是根据一示例性实施例示出的一种信息更新方法的流程图,如图5所示,该方法可以包括:

S510,在多个用户中的第二用户与任一对象建立预设关联关系的情况下,在第二用户的社交关联用户的缓存数据项中查询任一对象的对象标识。

其中,第二用户为多个用户中的任一用户,任一对象是与第二用户不具有预设关联关系的对象。

S520,在查询到任一对象的对象标识的情况下,在任一对象对应的用户标识集合中添加第二用户的用户标识。

示例性地,第二用户为用户B,以用户B的社交关联用户为用户A为例,服务器存储了用户A的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d]}。在用户B最新关注了公众号M3的情况下,服务器在{m1[b,d],m2[b,c],m3[c],m4[d]}中查询M3的对象标识m3,在查找到的情况下,在对应的用户标识集合[c]中存储用户B的标识b,得到更新后的缓存数据项{m1[b,d],m2[b,c],m3[b,c],m4[d]}。

S530,在未查询到任一对象的对象标识的情况下,在社交关联用户的缓存数据项中添加任一对象的对象标识,以及任一对象对应的第二用户的用户标识。

继续参照上述示例,在用户B最新关注了公众号M5的情况下,服务器在{m1[b,d],m2[b,c],m3[c],m4[d]}中查询M5的对象标识m5,在未查找到的情况下,服务器存储m5,以及对应的用户B的标识b,得到更新后的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d],m5[b]}。

如此,在用户与某个对象新增关联关系,例如新增关注的情况下,服务器可以在该用户的所有社交关联用户的缓存数据项中查询该新增关注对象的对象标识,及时地在缓存数据项中存储新增关注对象的对象标识,或者在已有该对象标识的情况下,在该新增关注对象的用户标识集合中及时添加用户标识,避免返回给客户端的信息缺失,或者有遗漏的问题。

在本公开的一些实施例中,该方法还可以包括:在第三用户与第四用户解除社交关联关系的情况下,删除第三用户的缓存数据项中第四用户的用户标识和第四用户的缓存数据项中第三用户的用户标识。

其中,第三用户和第四用户为多个用户中的任意两个用户。

示例性地,第三用户为用户A,第四用户为用户B,用户A的缓存数据项为{m1[b,d],m2[b,c],m3[c],m4[d]},用户B的缓存数据项为{m1[a,d],m2[a,c],m3[a,c],m4[a,d]}。当用户A与用户B解除了关联关系,例如互删好友时,服务器删除用户A的缓存数据项中用户B的标识b,得到更新后的缓存数据项{m1[d],m2[c],m3[c],m4[d]},并且删除用户B的缓存数据项中用户A的标识a,得到更新后的缓存数据项{m1[d],m2[c],m3[c],m4[d]}。

如此,在两个用户解除了社交关联关系的情况下,服务器可以在双方的缓存数据项中,分别删除对方的用户标识,保证每个用户的社交关联用户信息的实时性和准确性,进而保证信息获取的准确性。

在本公开的一些实施例中,图6是根据一示例性实施例示出的另一种信息更新方法的流程图,如图6所示,该方法可以包括:

S610,在第五用户与第六用户新增社交关联关系的情况下,获取与第五用户具有预设关联关系的第一对象的对象标识,以及与第六用户具有预设关联关系的第二对象的对象标识,第五用户和第六用户为多个用户中的任意两个用户。

S620,在第六用户的缓存数据项中查询第一对象的对象标识,在查询到第一对象的对象标识的情况下在第一对象对应的用户标识集合中添加第五用户的用户标识;或者,在未查询到第一对象的对象标识的情况下,在第六用户的缓存数据项中添加第一对象的对象标识,以及第一对象对应的第五用户的用户标识。

在本公开的一个示例中,预设关联关系为收藏关系,第五用户为用户C,第六用户为用户D,用户C收藏的第一对象的对象标识包括视频N1的标识n1、视频N2的标识n2和视频N3的标识n3,用户D的缓存数据项为{n1[a,b],n2[a,b]}。当用户C与用户D新增社交关联关系,例如添加好友时,服务器在用户D的缓存数据项{n1[a,b],n2[a,b]}中查询对象标识n1、n2和n3。在查询到n1和n2时,在用户D的缓存数据项中n1、n2对应的用户标识集合添加用户C的标识c,在未查询到n3时,在用户D的缓存数据项中添加对象标识n3,以及n3对应的用户C的标识c,得到更新后的缓存数据项{n1[a,b,c],n2[a,b,c],n3[c]}。

S630,在第五用户的缓存数据项中查询第二对象的对象标识,在查询到第二对象的对象标识的情况下,在第二对象对应的用户标识集合中添加第六用户的用户标识;或者,在未查询到第二对象的对象标识的情况下,在第五用户的缓存数据项中添加第二对象的对象标识,以及第二对象对应的第六用户的用户标识。

参照上述示例,用户D收藏的第二对象的对象标识包括视频N2的标识n2和视频N3的标识n3,用户C的缓存数据项为{n1[a,b],n2[a,b]}。当用户C与用户D添加好友时,服务器还可以在用户C的缓存数据项{n1[a,b],n2[a,b]}中查询对象标识n2和n3。在查询到n2时,在用户D的缓存数据项中n2对应的用户标识集合添加用户D的标识cd,在未查询到n3时,在用户C的缓存数据项中添加对象标识n3,以及n3对应的用户D的标识d,得到更新后的缓存数据项{n1[a,b],n2[a,b,d],n3[d]}。

需要说明的是,本申请不对S620和S630的执行顺序进行具体限定。

如此,在两个用户新增了社交关联关系的情况下,服务器可以在双方的缓存数据项中,分别查询与对方用户具有预设关联关系的对象的对象标识,在查询到的情况下,直接在对象标识的用户标识集合中添加对方用户的用户标识,在未查询到的情况下,添加该对象标识以及对方用户的用户标识,实现对用户双方的缓存数据项的及时扩充,保证用户双方的缓存数据项的实时性和准确性,进而保证信息获取的准确性。

在本公开的一些实施例中,图7是根据一示例性实施例示出的又一种信息更新方法的流程图,如图7所示,该方法还可以包括:

S710,在缓存数据中未查询到第一用户的缓存数据项的情况下,获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识。

S720,根据第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,建立第一用户的缓存数据项。

示例性地,第一用户为用户A,用户A的社交关联用户包括用户B、用户C、用户D,其中,用户B关注的公众号M1、公众号M2的标识为m1,m2;用户C关注的公众号M2、公众号M3的标识为m2,m3;用户D关注的公众号M1、公众号M4的标识为m1,m4。对于公众号M1,key为m1,value为用户标识集合[b,d],即标识b,d对应的用户B和用户D均关注了公众号M1。相似地,对于公众号M2,key为m2,value为用户标识集合[b,c];对于公众号M3,key为m3,value为用户标识集合[c];对于公众号M4,key为m4,value为用户标识集合[d]。最终,得到用户A的缓存数据项{m1[b,d],m2[b,c],m3[c],m4[d]},该缓存数据项中包括4个key-value。

S730,在缓存数据中添加第一用户的缓存数据项,更新缓存数据。

如此,即使缓存数据中未存储第一用户的缓存数据项,通过获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,能够建立第一用户的缓存数据项,实现缓存数据的及时更新,保证服务器能够成功获取到信息,并向客户端返回信息。

基于上述信息获取方法,本公开还提供了信息获取装置。具体结合图8进行说明。

图8是根据一示例性实施例示出的一种信息获取装置的框图。参照图8,该信息获取装置800可以包括接收模块810、查询模块820、发送模块830。

其中,接收模块810,被配置为执行接收客户端发送的信息获取请求,信息获取请求包括客户端的访问对象的对象标识;查询模块820,被配置为执行在缓存数据中查询客户端对应的第一用户的缓存数据项,缓存数据包括多个用户的缓存数据项,其中,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合;查询模块820,还被配置为执行在第一用户的缓存数据项的至少一个键值对中,查询访问对象的对象标识;发送模块830,被配置为执行向客户端发送第一用户的缓存数据项中访问对象的对象标识对应的用户标识集合。

本公开实施例提供的信息获取装置,由于缓存数据中包括多个用户的缓存数据项,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合,因此当接收到客户端发送的信息获取请求时,可以直接基于该信息获取请求中客户端的访问对象的对象标识,在缓存数据中查询该客户端对应的第一用户的缓存数据项,并在第一用户的缓存数据项中,查询访问对象的对象标识。如此,在客户端对应的用户访问了某个对象的主页时,服务器只需要在该用户对应的缓存数据项中查询一次该访问对象的对象标识,并可以直接将访问对象的对象标识对应的用户标识集合返回给客户端,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量,有效降低了服务器的请求压力。

在本公开的一些实施例中,该装置还包括:获取模块,被配置为执行在接收客户端发送的信息获取请求之前,获取多个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识;建立模块,被配置为执行根据每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,建立每个用户的缓存数据项,得到缓存数据。

如此,通过获取每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,能够建立每个用户的缓存数据项,得到缓存数据。这样,服务器为每个用户都维护了一个缓存数据项,因此当需要获取该用户的所有好友对某个公众号的关注信息时,服务器可以直接在该用户的缓存数据项中查询该公众号的标识,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量。同时,在大多数应用场景下,服务器只读取数据不涉及到数据修改的读请求,远远大于涉及到数据修改的写请求,因此在高并发的场景下,需要非常多的服务器资源来支撑这样的需求场景,而建立每个用户的缓存数据项之后,该缓存数据项可以重复利用,有效减少读请求的请求量,,降低了服务器的请求压力。

在本公开的一些实施例中,该装置还包括:删除模块,被配置为执行在用户与任一对象解除预设关联关系的情况下,删除任一对象对应的用户标识集合中用户的用户标识,任一对象是与用户具有预设关联关系的对象。

如此,在用户与对象解除关联关系的情况下,例如取消关注某个公众号的情况下,服务器可以对缓存数据进行及时更新,删除缓存数据中该公众号对应的用户标识集合中的用户标识,从而实现缓存数据的有效更新,避免客户端在访问该公众号时,服务器返回的用户标识集合会包含已取消关注该公众号的用户的用户标识,提升返回信息的准确性。

在本公开的一些实施例中,该装置还包括:查询模块820,还被配置为执行在多个用户中的第二用户与任一对象建立预设关联关系的情况下,在第二用户的社交关联用户的缓存数据项中查询任一对象的对象标识,第二用户为多个用户中的任一用户,任一对象是与第二用户不具有预设关联关系的对象;添加模块,被配置为执行在查询到任一对象的对象标识的情况下,在任一对象对应的用户标识集合中添加第二用户的用户标识;或者,在未查询到任一对象的对象标识的情况下,在社交关联用户的缓存数据项中添加任一对象的对象标识,以及任一对象对应的第二用户的用户标识。

如此,在用户与某个对象新增关联关系,例如新增关注的情况下,服务器可以在该用户的所有社交关联用户的缓存数据项中查询该新增关注对象的对象标识,及时地在缓存数据项中存储新增关注对象的对象标识,或者在已有该对象标识的情况下,在该新增关注对象的用户标识集合中及时添加用户标识,避免返回给客户端的信息缺失,或者有遗漏的问题。

在本公开的一些实施例中,该装置还包括:删除模块,被配置为执行在第三用户与第四用户解除社交关联关系的情况下,删除第三用户的缓存数据项中第四用户的用户标识和第四用户的缓存数据项中第三用户的用户标识,第三用户和第四用户为多个用户中的任意两个用户。

如此,在两个用户解除了社交关联关系的情况下,服务器可以在双方的缓存数据项中,分别删除对方的用户标识,保证每个用户的社交关联用户信息的实时性和准确性,进而保证信息获取的准确性。

在本公开的一些实施例中,该装置还包括:获取模块,被配置为执行在第五用户与第六用户新增社交关联关系的情况下,获取与第五用户具有预设关联关系的第一对象的对象标识,以及与第六用户具有预设关联关系的第二对象的对象标识,第五用户和第六用户为多个用户中的任意两个用户;更新模块,被配置为执行在第六用户的缓存数据项中查询第一对象的对象标识,在查询到第一对象的对象标识的情况下,在第一对象对应的用户标识集合中添加第五用户的用户标识;或者,在未查询到第一对象的对象标识的情况下,在第六用户的缓存数据项中添加第一对象的对象标识,以及第一对象对应的第五用户的用户标识;更新模块,还被配置为执行在第五用户的缓存数据项中查询第二对象的对象标识,在查询到第二对象的对象标识的情况下,在第二对象对应的用户标识集合中添加第六用户的用户标识;或者,在未查询到第二对象的对象标识的情况下,在第五用户的缓存数据项中添加第二对象的对象标识,以及第二对象对应的第六用户的用户标识。

如此,在两个用户解除了社交关联关系的情况下,服务器可以在双方的缓存数据项中,分别删除对方的用户标识,保证每个用户的社交关联用户信息的实时性和准确性,进而保证信息获取的准确性。

在本公开的一些实施例中,该装置还包括:获取模块,被配置为执行在缓存数据中未查询到第一用户的缓存数据项的情况下,获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识;建立模块,被配置为执行根据第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,建立第一用户的缓存数据项;更新模块,被配置为执行在缓存数据中添加第一用户的缓存数据项,更新缓存数据。

如此,即使缓存数据中未存储第一用户的缓存数据项,通过获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,能够建立第一用户的缓存数据项,实现缓存数据的及时更新,保证服务器能够成功获取到信息,并向客户端返回信息。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图9是根据一示例性实施例示出的一种服务器的框图。参照图9,本公开实施例还提供了一种服务器,包括处理器910、通信接口920、存储器930和通信总线940,其中,处理器910、通信接口920和存储器930通过通信总线940完成相互间的通信。

该存储器930,用于存放处理器910可执行的指令。

该处理器910,用于执行存储器930上所存放的指令时,实现如下步骤:

接收客户端发送的信息获取请求,信息获取请求包括客户端的访问对象的对象标识;

在缓存数据中查询客户端对应的第一用户的缓存数据项,缓存数据包括多个用户的缓存数据项,其中,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合;

在第一用户的缓存数据项的至少一个键值对中,查询访问对象的对象标识;

向客户端发送第一用户的缓存数据项中访问对象的对象标识对应的用户标识集合。

可见,应用本公开实施例,由于缓存数据中包括多个用户的缓存数据项,每个用户的缓存数据项包括至少一个键值对,每个键值对包括对象的对象标识,以及用户的社交关联用户中与对象具有预设关联关系的社交关联用户的用户标识集合,因此当接收到客户端发送的信息获取请求时,可以直接基于该信息获取请求中客户端的访问对象的对象标识,在缓存数据中查询该客户端对应的第一用户的缓存数据项,并在第一用户的缓存数据项中,查询访问对象的对象标识,最后将访问对象的对象标识对应的用户标识集合返回给客户端。如此,在客户端对应的用户访问了某个对象的主页时,服务器只需要在该用户对应的缓存数据项中查询一次该访问对象的对象标识,无需查询该用户的好友列表以及该用户好友的关注列表,减少了查询请求量,有效降低了服务器的请求压力。

在本公开的一些实施例中,该处理器910用于执行存储器930上所存放的指令时,还可以实现如下步骤:在接收客户端发送的信息获取请求之前,获取多个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识;根据每个用户的社交关联用户的用户标识,以及与社交关联用户具有预设关联关系的对象的对象标识,建立每个用户的缓存数据项,得到缓存数据。

本公开的一些实施例中,该处理器910用于执行存储器930上所存放的指令时,还可以实现如下步骤:在用户与任一对象解除预设关联关系的情况下,删除任一对象对应的用户标识集合中用户的用户标识,任一对象是与用户具有预设关联关系的对象。

在本公开的一些实施例中,该处理器910用于执行存储器930上所存放的指令时,还可以实现如下步骤:在多个用户中的第二用户与任一对象建立预设关联关系的情况下,在第二用户的社交关联用户的缓存数据项中查询任一对象的对象标识,第二用户为多个用户中的任一用户,任一对象是与第二用户不具有预设关联关系的对象;在查询到任一对象的对象标识的情况下,在任一对象对应的用户标识集合中添加第二用户的用户标识;或者,在未查询到任一对象的对象标识的情况下,在社交关联用户的缓存数据项中添加任一对象的对象标识,以及任一对象对应的第二用户的用户标识。

在本公开的一些实施例中,该处理器910用于执行存储器930上所存放的指令时,还可以实现如下步骤:在第三用户与第四用户解除社交关联关系的情况下,删除第三用户的缓存数据项中第四用户的用户标识和第四用户的缓存数据项中第三用户的用户标识,第三用户和第四用户为多个用户中的任意两个用户。

在本公开的一些实施例中,该处理器910用于执行存储器930上所存放的指令时,还可以实现如下步骤:在第五用户与第六用户新增社交关联关系的情况下,获取与第五用户具有预设关联关系的第一对象的对象标识,以及与第六用户具有预设关联关系的第二对象的对象标识,第五用户和第六用户为多个用户中的任意两个用户;在第六用户的缓存数据项中查询第一对象的对象标识,在查询到第一对象的对象标识的情况下,在第一对象对应的用户标识集合中添加第五用户的用户标识;或者,在未查询到第一对象的对象标识的情况下,在第六用户的缓存数据项中添加第一对象的对象标识,以及第一对象对应的第五用户的用户标识;在第五用户的缓存数据项中查询第二对象的对象标识,在查询到第二对象的对象标识的情况下,在第二对象对应的用户标识集合中添加第六用户的用户标识;或者,在未查询到第二对象的对象标识的情况下,在第五用户的缓存数据项中添加第二对象的对象标识,以及第二对象对应的第六用户的用户标识。

在本公开的一些实施例中,该处理器910用于执行存储器930上所存放的指令时,还可以实现如下步骤:在缓存数据中未查询到第一用户的缓存数据项的情况下,获取第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识;根据第一用户的社交关联用户的用户标识,以及与第一用户的社交关联用户具有预设关联关系的对象的对象标识,建立第一用户的缓存数据项;在缓存数据中添加第一用户的缓存数据项,更新缓存数据。

图10是根据一示例性实施例示出的用于信息获取方法的设备的框图。例如,该设备1000可以被提供为一服务器。参照图10,电子设备1000包括处理组件1022,其进一步包括一个或多个处理器,以及由存储器1032所代表的存储器资源,用于存储可由处理组件1022的执行的指令,例如应用程序。存储器1032中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1022被配置为执行指令,以执行上述任一实施例所述的信息获取方法。

该设备1000还可以包括一个电源组件1026被配置为执行设备1000的电源管理,一个有线或无线网络接口1050被配置为执行将设备1000连接到网络,和一个输入输出(I/O)接口1058。设备1000可以操作基于存储在存储器1032的操作系统,例如Windows ServerTM,Mac OS XTM,Unix TM,Linux TM,FreeBSD TM或类似。

在本公开一些实施例中,还提供了一种存储介质,当该存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述任一实施例所述的信息获取方法。

可选地,该存储介质可以是非临时性计算机可读存储介质,示例性的,非临时性计算机可读存储介质可以是计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。

在本公开一些实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由服务器的处理器执行时,使得服务器能够执行上述任一实施例所述的信息获取方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 信息获取方法、装置、服务器、介质及产品
  • 虚拟对象信息获取方法、装置、服务器及可读存储介质
技术分类

06120113194042