CN108334520A - 社交网络数据处理方法、装置、存储介质及电子设备 - Google Patents

社交网络数据处理方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN108334520A
CN108334520A CN201710044419.0A CN201710044419A CN108334520A CN 108334520 A CN108334520 A CN 108334520A CN 201710044419 A CN201710044419 A CN 201710044419A CN 108334520 A CN108334520 A CN 108334520A
Authority
CN
China
Prior art keywords
new element
bloom filter
data processing
default set
counting bloom
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
CN201710044419.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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710044419.0A priority Critical patent/CN108334520A/zh
Publication of CN108334520A publication Critical patent/CN108334520A/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开是关于一种社交网络数据处理方法、装置、计算机可读存储介质以及电子设备。该方法包括:通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一;接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。本公开可以节省数据存储空间,提高数据加载效率。

Description

社交网络数据处理方法、装置、存储介质及电子设备
技术领域
本公开涉及互联网技术领域,尤其涉及一种社交网络数据处理方法、社交网络数据处理装置、用于社交网络数据处理的计算机可读存储介质以及用于社交网络数据处理的电子设备。
背景技术
随着互联网技术的快速发展,基于互联网技术的社交网络服务(SNS,SocialNetwork Service)***已经越来越流行,例如各种网站、论坛、社交即时通讯应用程序等。在SNS***中,存在大量场景需要判定用户是否进行过某种行为,例如即时通讯应用程序微信中的用户是否进行过点赞等行为。
相关技术中,上述用户行为判断问题可以抽象为一集合判断问题。在解决所述集合判定问题时,通常的做法是在服务器中用哈希表存储一个集合在内存中,当遇到一个新元素时,将该新元素和集合中的元素直接进行比较,从而判定新元素是否在集合中。同时该集合中的数据会定时刷新持久化到磁盘文件中。但是,相关技术中存在以下问题:
1)哈希表的存储空间有限:由于哈希表是以键值的方式进行数据存储,所以需要大量的存储空间。例如在SNS***中,要存储用户是否进行过点赞行为,通常会以用户ID加上场景ID为键,这里就需要几十个字节,当用户达到千万级别时,可能就需要1G多的存储空间,而实际使用场景可能更为复杂,需要键的大小会更大,这是一般的服务器所无法承受的。
2)数据加载效率低下:集合中的数据通常会定时刷新到磁盘文件中,因此每次服务重启时需要重新加载该磁盘文件的数据到内存中,数据加载效率较为低下。
因此,有必要提供一种新的技术方案改善上述方案中存在的一个或者多个问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种社交网络数据处理方法、社交网络数据处理装置、用于社交网络数据处理的计算机可读存储介质以及用于社交网络数据处理的电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供一种社交网络数据处理方法,应用于一主服务器,所述方法包括:
通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一;
接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。
本公开的一种示例性实施例中,所述预设数据请求包括读请求和写请求中的至少一个;所述响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系包括:
当接收到所述写请求时,将所述新元素写入所述预设集合中,或者将所述新元素从所述预设集合中删除;
当接收到所述读请求时,判断所述新元素是否存在于所述预设集合中。
本公开的一种示例性实施例中,所述将所述新元素写入所述预设集合中包括:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值加一。
本公开的一种示例性实施例中,所述将所述新元素从所述预设集合中删除包括:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值减一。
本公开的一种示例性实施例中,所述判断所述新元素是否存在于所述预设集合中包括:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
判断所述计数布隆过滤器中的所述位数组中与所述新元素对应的各位置的值是否为零,若否则所述新元素存在于所述预设集合中,若是则所述新元素不存在于所述预设集合中。
本公开的一种示例性实施例中,所述通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值包括:
所述映射函数采用信息摘要算法MD5进行哈希计算将所述新元素映射为对应的一个值。
本公开的一种示例性实施例中,所述主服务器通信连接一备用服务器;所述方法还包括:
当接收到所述读请求时,所述备用服务器根据所述读请求进行与所述主服务器上相同的判断处理以判断所述新元素是否存在于所述预设集合中;
所述主服务器与所述备用服务器实时进行所述判断处理时所述预设集合中的数据的同步。
本公开的一种示例性实施例中,所述方法还包括:
当所述主服务器在与所述备用服务器断线重连时,所述主服务器根据所述备用服务器上预先记录的上一次同步时的数据的偏移量进行本次的数据同步处理。
本公开的一种示例性实施例中,所述方法还包括:
将所述预设集合中的每个元素定时刷新到一磁盘文件中;
通过内存映射方法MMAP将所述磁盘文件直接映射到所述主服务器的内存中。
根据本公开实施例的第二方面,提供一种社交网络数据处理装置,应用于一主服务器,所述装置包括:
数据存储模块,用于通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一;
数据处理模块,用于接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。
本公开的一种示例性实施例中,所述预设数据请求包括读请求和写请求中的至少一个;所述数据处理模块,用于:
当接收到所述写请求时,将所述新元素写入所述预设集合中,或者将所述新元素从所述预设集合中删除;
当接收到所述读请求时,判断所述新元素是否存在于所述预设集合中。
本公开的一种示例性实施例中,所述数据处理模块,用于:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值加一。
本公开的一种示例性实施例中,所述数据处理模块,用于:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值减一。
本公开的一种示例性实施例中,所述数据处理模块,用于:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
判断所述计数布隆过滤器中的所述位数组中与所述新元素对应的各位置的值是否为零,若否则所述新元素存在于所述预设集合中,若是则所述新元素不存在于所述预设集合中。
本公开的一种示例性实施例中,所述数据处理模块,用于:
所述映射函数采用信息摘要算法MD5进行哈希计算将所述新元素映射为对应的一个值。
本公开的一种示例性实施例中,所述主服务器通信连接一备用服务器;所述***还包括数据同步模块,用于:
当接收到所述读请求时,所述备用服务器根据所述读请求进行与所述主服务器上相同的所述判断处理以判断所述新元素是否存在于所述预设集合中;
所述主服务器与所述备用服务器实时进行所述判断处理时所述预设集合中的数据的同步。
本公开的一种示例性实施例中,所述数据同步模块,用于:
当所述主服务器在与所述备用服务器断线重连时,所述主服务器根据所述备用服务器上预先记录的上一次同步时的数据的偏移量进行本次的数据同步处理。
本公开的一种示例性实施例中,所述***还包括数据映射模块,用于:
将所述预设集合中的每个元素定时刷新到一磁盘文件中;
通过内存映射方法MMAP将所述磁盘文件直接映射到所述主服务器的内存中。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述本公开实施例的上述第一方面的所述社交网络数据处理方法。
根据本公开实施例的第四方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行本公开实施例的上述第一方面的所述社交网络数据处理方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开的一种实施例中,通过上述社交网络数据处理方法、装置、存储介质以及电子设备,利用计数布隆过滤器存储与网络社交行为相关的元素数据,同时进行元素数据的读写操作;这样,一方面,由于采用计数布隆过滤器替换了相关技术中的哈希表存储数据方式,大大节省了数据存储空间;另一方面,由于节省了数据存储空间,可以存储更多的用户数据,使得服务器可以在如千万级别以上的多用户和复杂场景下能够正常运行,承受力更强,进而使得SNS***可以稳定可靠地运行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中第一社交网络数据处理方法流程图;
图2示意性示出本公开示例性实施例中第二社交网络数据处理方法流程图;
图3示意性示出本公开示例性实施例中第三社交网络数据处理方法流程图;
图4示意性示出本公开示例性实施例中第四社交网络数据处理方法流程图;
图5示意性示出本公开示例性实施例中一社交网络数据处理场景示意图;
图6示意性示出本公开示例性实施例中第一社交网络数据处理装置示意图;
图7示意性示出本公开示例性实施例中第二社交网络数据处理装置示意图;
图8示意性示出本公开示例性实施例中第三社交网络数据处理装置示意图;
图9示意性示出本公开示例性实施例中电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种社交网络数据处理方法。该方法可以应用于一主服务器,例如社交网站服务器、微信服务器等等。参考图1中所示,该方法可以包括:
步骤S101:通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一。
步骤S102:接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。
通过上述社交网络数据处理方法,一方面,由于采用计数布隆过滤器替换了相关技术中的哈希表存储数据方式,大大节省了数据存储空间;另一方面,由于节省了数据存储空间,可以存储更多的用户数据,使得服务器可以在如千万级别以上的多用户和复杂场景下能够正常运行,承受力更强,进而使得SNS***可以稳定可靠地运行。
下面,将参考图1至图5对本示例实施方式中的上述方法的各个步骤进行更详细的说明。
在步骤S101中,通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一。
本示例实施方式中,采用计数布隆过滤器替换哈希表存储数据。计数布隆过滤器需要的是一个位数组和K个映射函数,在初始状态时,对于长度为m的位数组array,位数组array的所有位置的数值为零,同时该位数组的每一位置相当于一个计数器。例如对于有n个元素的集合S={S1,S2,...Sn},可以通过k个映射函数{f1,f2,...fk},将集合S中的每个元素Sj(1<=j<=n)映射为K个值{g1,g2,...gk},然后再将位数组array中相对应的array[g1],array[g2],......array[gk]位置的数值加1,即对应位置的计数器加一。布隆过滤器在空间和时间方面都有巨大的优势,例如布隆过滤器只占哈希表的1/8或1/4的空间复杂度,减少算法计算时间,易于硬件实施。另外,布隆过滤器存储空间和***/查询时间都是常数,节省了数据存储空间,可以存储更多的用户数据,使得服务器可以在如千万级别以上的多用户和复杂场景下能够正常运行。最后,布隆过滤器不需要存储元素本身,可以应用于某些对保密要求非常严格的场景中,应用范围广泛。
所述预设集合中的每个元素与所述社交网络中的一预设行为相关,例如每个元素用于表征一社交网络用户的点赞行为,当然也可以表征其他社交行为,如转发、评论等等,对此不作特殊限制。示例性的,位于所述预设集合中的每个元素均表示用户进行了点赞行为。
在步骤S102中,接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系。
本示例实施方式中,所述新元素也与所述社交网络中的一预设行为相关,例如所述新元素用于表征一社交网络用户的点赞行为,当然也可以表征其他社交行为,如转发、评论等等,对此不作特殊限制。示例性的,本示例实施方式可以通过所述计数布隆过滤器确定所述新元素与所述预设集合的关联关系,例如判断所述新元素是否为用户进行了点赞行为等。
参考图2所示,本示例实施方式中,所述预设数据请求可以包括读请求和写请求中的至少一个。业务使用方可以通过用户数据报协议(UDP,User Datagram Protocol)的方式向所述主服务器发送读请求或者写请求。
所述步骤S102中响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系可以包括以下步骤S201~S202。其中:
步骤S201:当接收到所述写请求时,将所述新元素写入所述预设集合中,或者将所述新元素从所述预设集合中删除。
示例性的,所述主服务器接收到所述写请求时,将所述新元素写入所述预设集合中可以包括:通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;然后将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值加一,即该一位置对应的计数器加一。
示例性的,所述主服务器接收到所述写请求时,将所述新元素从所述预设集合中删除可以包括:通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;然后将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值减一,即该一位置对应的计数器减一。
以上示例性实施例中,所述计数布隆过滤器中的位数组的每一位置是一个二进制位,且对应一计数器,当进行写入操作元素映射到某一位置时,这个位置的数值加1,当进行删除操作时,将相对应的位置的数值减1。本示例性实施例中,计数器对应的位数可以分配4位,因为分配4位时,所述位数组的每一位置对应的位溢出的概率为:1.37×10-15×m(m为数据量的大小),此概率相当小,这样使用的存储空间非常小,进一步节省数据存储空间。
步骤S202:当接收到所述读请求时,判断所述新元素是否存在于所述预设集合中。
示例性的,所述判断所述新元素是否存在于所述预设集合中可以包括:通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;然后判断所述计数布隆过滤器中的所述位数组中与所述新元素对应的各位置的值是否为零,若否则所述新元素存在于所述预设集合中,若是则所述新元素不存在于所述预设集合中。例如,如果要查找某个元素item是否在集合S中,则通过映射函数{f1,f2,...fk}得到k个值{g1,g2...gk},然后再判断位数组中对应的array[g1],array[g2]...array[gk]位置是否都为1,若全为1,则item在集合S中,否则item不在集合S中。
在上述示例性实施例中,上述通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值可以包括:所述映射函数采用信息摘要算法MD5进行哈希计算将所述新元素映射为对应的一个值。由于通过MD5算法进行哈希算法计算的散列效果最好,而如果哈希算法效果不好,很有可能导致大量的数据映射到所述位数组中的位置均相同,从而导致过滤器冲突率增加。因此本示例性实施例可以避免这些问题的出现。
参考图3~图4所示,在一示例性实施例中,所述主服务器可以通信连接一备用服务器;所述方法还可以包括步骤S301~S302。其中:
步骤S301:当接收到所述读请求时,所述备用服务器根据所述读请求进行与所述主服务器上相同的所述判断处理以判断所述新元素是否存在于所述预设集合中。
本示例性实施例中,为防止数据错乱,写请求只能由所述主服务器处理,仅所述读请求可以由所述备用服务器处理。所述备用服务器根据所述读请求进行与所述主服务器上相同的所述判断处理以判断所述新元素是否存在于所述预设集合中,具体的判断过程可参看前述实施例中的相应描述,此处不再赘述。
步骤S302:所述主服务器与所述备用服务器实时进行所述判断处理时所述预设集合中的数据的同步。
本示例性实施例中,为了减轻所述主服务器的压力,使用备用服务器提供所述读请求服务。所述主服务器与所述备用服务器实时同步数据,例如可以通过用户数据报协议UDP的方式实时同步数据。
示例性的,所述方法还可以包括:当所述主服务器在与所述备用服务器断线重连时,所述主服务器根据所述备用服务器上预先记录的上一次同步时的数据的偏移量进行本次的数据同步处理。
也就是说,在进行数据同步时,所述备用服务器可以记录目前数据同步的偏移量,以便于万一主服务器和备用服务器断线重连时,所述主服务器可以通过该偏移量依然能够获取到上次同步的状态,进而进行数据同步修复。
参考图4所示,在上述各个实施例的基础上,在一示例性实施例中,所述方法还可以包括以下步骤S401~S402。其中:
步骤S401:将所述预设集合中的每个元素定时刷新到一磁盘文件中。
本示例性实施例中,例如可以定时更新社交网络行为数据到主服务器的磁盘文件中,具体的更新时间可以自定义设置,例如每一小时、或者每隔预设分钟或者预设秒进行数据更新,对此不作特殊限制。
步骤S402:通过内存映射方法MMAP将所述磁盘文件直接映射到所述主服务器的内存中。
本示例性实施例中,MMAP能够将一个文件或者其它对象映射进内存,将所述磁盘文件通过MMAP映射到内存中,便于直接在共享内存中读写数据。同时当服务重启时,不需要重新加载数据文件,可以直接映射到内存中,提高了数据加载效率。基于MMAP的方式进行计数布隆过滤器服务的封装,便于数据文件的存储和映射。且MMAP操作提供了一种机制,让用户程序直接访问设备内存,这种机制,相对于在用户空间和内核空间互相拷贝数据,效率更高。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
进一步的,本示例实施方式中,还提供了一种社交网络数据处理装置,该装置可以应用于一主服务器。参考图6中所示,装置100可以包括数据存储模块101和数据处理模块102。其中:
所述数据存储模块101,用于通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一;
所述数据处理模块102,用于接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。
在一示例性实施例中,所述预设数据请求可以包括读请求和写请求中的至少一个;所述数据处理模块102,用于当接收到所述写请求时,将所述新元素写入所述预设集合中,或者将所述新元素从所述预设集合中删除;当接收到所述读请求时,判断所述新元素是否存在于所述预设集合中。
在一示例性实施例中,所述数据处理模块102,用于通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值加一。
在一示例性实施例中,所述数据处理模块102,用于通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值减一。
在一示例性实施例中,所述数据处理模块102,用于通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;判断所述计数布隆过滤器中的所述位数组中与所述新元素对应的各位置的值是否为零,若否则所述新元素存在于所述预设集合中,若是则所述新元素不存在于所述预设集合中。
在一示例性实施例中,所述数据处理模块102,用于所述映射函数采用信息摘要算法MD5进行哈希计算将所述新元素映射为对应的一个值。
参考图7所示,在一示例性实施例中,所述主服务器还可以通信连接一备用服务器;所述***100还可以包括数据同步模块103,用于当接收到所述读请求时,所述备用服务器根据所述读请求进行与所述主服务器上相同的所述判断处理以判断所述新元素是否存在于所述预设集合中;当所述主服务器与所述备用服务器实时进行所述判断处理时所述预设集合中的数据的同步。
在一示例性实施例中,所述数据同步模块103,用于当所述主服务器在与所述备用服务器断线重连时,所述主服务器根据所述备用服务器上预先记录的上一次同步时的数据的偏移量进行本次的数据同步处理。
参考图8所示,在一示例性实施例中,所述***100还可以包括数据映射模块104,用于将所述预设集合中的每个元素定时刷新到一磁盘文件中;再通过内存映射方法MMAP将所述磁盘文件直接映射到所述主服务器的内存中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本公开示例实施方式中还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的社交网络数据处理方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读存储介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
所述计算机可读存储介质中包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频等等,或者上述的任意合适的组合。
图9示出根据本公开示例实施方式中一种电子设备400的示意图。参照图9,电子设备400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法。
装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置400可以操作基于存储在存储器432的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (16)

1.一种社交网络数据处理方法,应用于一主服务器,其特征在于,所述方法包括:
通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一;
接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。
2.根据权利要求1所述社交网络数据处理方法,其特征在于,所述预设数据请求包括读请求和写请求中的至少一个;
所述响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系包括:
当接收到所述写请求时,将所述新元素写入所述预设集合中,或者将所述新元素从所述预设集合中删除;
当接收到所述读请求时,判断所述新元素是否存在于所述预设集合中。
3.根据权利要求2所述社交网络数据处理方法,其特征在于,所述将所述新元素写入所述预设集合中包括:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值加一。
4.根据权利要求2所述社交网络数据处理方法,其特征在于,所述将所述新元素从所述预设集合中删除包括:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值减一。
5.根据权利要求2所述社交网络数据处理方法,其特征在于,所述判断所述新元素是否存在于所述预设集合中包括:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
判断所述计数布隆过滤器中的所述位数组中与所述新元素对应的各位置的值是否为零,若否则所述新元素存在于所述预设集合中,若是则所述新元素不存在于所述预设集合中。
6.根据权利要求3~5任一项所述社交网络数据处理方法,其特征在于,所述通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值包括:
所述映射函数采用信息摘要算法MD5进行哈希计算将所述新元素映射为对应的一个值。
7.根据权利要求2~5任一项所述社交网络数据处理方法,其特征在于,所述主服务器通信连接一备用服务器;所述方法还包括:
当接收到所述读请求时,所述备用服务器根据所述读请求进行与所述主服务器上相同的判断处理以判断所述新元素是否存在于所述预设集合中;
所述主服务器与所述备用服务器实时进行所述判断处理时所述预设集合中的数据的同步。
8.根据权利要求7所述社交网络数据处理方法,其特征在于,所述方法还包括:
当所述主服务器在与所述备用服务器断线重连时,所述主服务器根据所述备用服务器上预先记录的上一次同步时的数据的偏移量进行本次的数据同步处理。
9.根据权利要求7所述社交网络数据处理方法,其特征在于,所述方法还包括:
将所述预设集合中的每个元素定时刷新到一磁盘文件中;
通过内存映射方法MMAP将所述磁盘文件直接映射到所述主服务器的内存中。
10.一种社交网络数据处理装置,应用于一主服务器,其特征在于,所述装置包括:
数据存储模块,用于通过一计数布隆过滤器中的映射函数将一预设集合中的每个元素映射为对应的一个值,并将所述计数布隆过滤器中的位数组中与每个元素对应的一个值相对应的一位置加一;
数据处理模块,用于接收一新元素的一预设数据请求,响应所述预设数据请求根据所述计数布隆过滤器中的位数组中与所述新元素对应的各位置的值确定所述新元素与所述预设集合的关联关系;其中,所述预设集合中的每个元素和所述新元素均与所述社交网络中的一预设行为相关。
11.根据权利要求10所述社交网络数据处理装置,其特征在于,所述预设数据请求包括读请求和写请求中的至少一个;所述数据处理模块,用于:
当接收到所述写请求时,将所述新元素写入所述预设集合中,或者将所述新元素从所述预设集合中删除;
当接收到所述读请求时,判断所述新元素是否存在于所述预设集合中。
12.根据权利要求11所述社交网络数据处理装置,其特征在于,所述数据处理模块,用于:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值加一。
13.根据权利要求11所述社交网络数据处理装置,其特征在于,所述数据处理模块,用于:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
将所述新元素对应的一个值映射到所述计数布隆过滤器中的所述位数组中的一位置,同时该一位置的数值减一。
14.根据权利要求11所述社交网络数据处理装置,其特征在于,所述数据处理模块,用于:
通过所述计数布隆过滤器中的所述映射函数将所述新元素映射为对应的一个值;
判断所述计数布隆过滤器中的所述位数组中与所述新元素对应的各位置的值是否为零,若否则所述新元素存在于所述预设集合中,若是则所述新元素不存在于所述预设集合中。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~9任一项所述社交网络数据处理方法。
16.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~9任一项所述社交网络数据处理方法。
CN201710044419.0A 2017-01-19 2017-01-19 社交网络数据处理方法、装置、存储介质及电子设备 Pending CN108334520A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710044419.0A CN108334520A (zh) 2017-01-19 2017-01-19 社交网络数据处理方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710044419.0A CN108334520A (zh) 2017-01-19 2017-01-19 社交网络数据处理方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN108334520A true CN108334520A (zh) 2018-07-27

Family

ID=62922105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710044419.0A Pending CN108334520A (zh) 2017-01-19 2017-01-19 社交网络数据处理方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN108334520A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339058A (zh) * 2020-03-24 2020-06-26 中国人民解放军国防科技大学 一种集合同步方法及装置
CN112905575A (zh) * 2020-12-30 2021-06-04 创盛视联数码科技(北京)有限公司 数据采集的方法、***、存储介质及电子设备
CN113486025A (zh) * 2021-07-28 2021-10-08 北京腾云天下科技有限公司 数据存储方法、数据查询方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116599A (zh) * 2012-11-30 2013-05-22 浙江工商大学 一种基于改进Bloom Filter结构的城市海量数据流快速冗余消除方法
CN103369051A (zh) * 2013-07-22 2013-10-23 中安消技术有限公司 一种数据服务器集群***及数据同步方法
CN104182435A (zh) * 2013-05-24 2014-12-03 三星Sds株式会社 基于数据缺失标记的信息检索***及方法
CN104199972A (zh) * 2013-09-22 2014-12-10 中科嘉速(北京)并行软件有限公司 一种基于深度学习的命名实体关系抽取与构建方法
CN104468777A (zh) * 2014-12-05 2015-03-25 北京奇虎科技有限公司 数据操作方法和装置
US20150324404A1 (en) * 2014-05-07 2015-11-12 International Business Machines Corporation Probabilistically finding the connected components of an undirected graph

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116599A (zh) * 2012-11-30 2013-05-22 浙江工商大学 一种基于改进Bloom Filter结构的城市海量数据流快速冗余消除方法
CN104182435A (zh) * 2013-05-24 2014-12-03 三星Sds株式会社 基于数据缺失标记的信息检索***及方法
CN103369051A (zh) * 2013-07-22 2013-10-23 中安消技术有限公司 一种数据服务器集群***及数据同步方法
CN104199972A (zh) * 2013-09-22 2014-12-10 中科嘉速(北京)并行软件有限公司 一种基于深度学习的命名实体关系抽取与构建方法
US20150324404A1 (en) * 2014-05-07 2015-11-12 International Business Machines Corporation Probabilistically finding the connected components of an undirected graph
CN104468777A (zh) * 2014-12-05 2015-03-25 北京奇虎科技有限公司 数据操作方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
姚世军,沈建京等: "《Oracle 12c 云数据库原理与应用技术》", 31 January 2016 *
张华,郑世珏,童德茂: "Bloom Filter技术及应用", 《阜阳师范学院学报(自然科学版)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339058A (zh) * 2020-03-24 2020-06-26 中国人民解放军国防科技大学 一种集合同步方法及装置
CN112905575A (zh) * 2020-12-30 2021-06-04 创盛视联数码科技(北京)有限公司 数据采集的方法、***、存储介质及电子设备
CN113486025A (zh) * 2021-07-28 2021-10-08 北京腾云天下科技有限公司 数据存储方法、数据查询方法及装置
CN113486025B (zh) * 2021-07-28 2023-07-25 北京腾云天下科技有限公司 数据存储方法、数据查询方法及装置

Similar Documents

Publication Publication Date Title
CN110163004B (zh) 一种区块链生成的方法、相关设备及***
CN106612285B (zh) 基于对等网络的分布式云数据管理方法及***
JP2022501752A (ja) 電子手形識別子の割り当て方法、電子手形の生成方法、及びその装置とシステム、並びに、記憶媒体及びコンピュータプログラム
CN110442652A (zh) 一种基于区块链的跨链数据处理方法及装置
CN101809561B (zh) 同步数据和元数据的交换
CN108804119A (zh) 配置更新方法、装置、***、配置中心、应用节点及介质
CN104704524A (zh) 信息公开***、信息公开服务器、通信终端、信息公开方法和非瞬时性计算机可读介质
CN110266505A (zh) 一种管理会话群的方法与设备
CN107086984A (zh) 一种获取和生成验证码的方法、终端及服务器
CN106462631A (zh) 在最终一致***中分区数据的一致视图
CN107484190B (zh) 网络连接方法、移动终端及计算机可读存储介质
CN108334520A (zh) 社交网络数据处理方法、装置、存储介质及电子设备
CN106534281A (zh) 一种数据请求的响应方法、装置及***
CN107071865A (zh) 一种无线保真快速连接的方法及装置
CN110740155B (zh) 分布式***中的请求处理方法及装置
CN106970845A (zh) 远程应用连接共享
CN110113406A (zh) 基于分布式的计算服务集群框架
CN105630419B (zh) 一种资源池的分区视图发送方法及管理节点
Khelaifa et al. A comparative analysis of adaptive consistency approaches in cloud storage
CN106779791A (zh) 一种搭配对象图片组合的生成方法及装置
CN107506494B (zh) 文件处理方法、移动终端及计算机可读存储介质
CN108710547A (zh) 一种数据备份方法、装置、终端及存储介质
CN108388458A (zh) 消息处理方法及相关产品
CN108874837A (zh) 数据库分库方法、装置、中间件及存储介质和电子设备
CN113010498B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180727