CN103309902A - 一种社交网络中用户信息存储和查找的方法和装置 - Google Patents
一种社交网络中用户信息存储和查找的方法和装置 Download PDFInfo
- Publication number
- CN103309902A CN103309902A CN2012100703243A CN201210070324A CN103309902A CN 103309902 A CN103309902 A CN 103309902A CN 2012100703243 A CN2012100703243 A CN 2012100703243A CN 201210070324 A CN201210070324 A CN 201210070324A CN 103309902 A CN103309902 A CN 103309902A
- Authority
- CN
- China
- Prior art keywords
- shard
- engine
- user profile
- database
- server
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种社交网络中用户信息存储和查找的方法和***,首先将用户信息数据输入到shard引擎,shard引擎根据内部分散规则将所述用户信息数据分散到数据库分别存储,社交网络服务器收到用户信息查询指令后,将所述查询指令转发给shard引擎,shard引擎通过内建机制向对应的数据库进行查询,取得查询结果,社交网络服务器对查询结果进行整合后返回。采用了本发明的技术方案,为终端提供了可靠的数据存取速度,通过实现类SQL语句支持,减少了***从原有模式迁移到新模式的复杂度,隐藏了底层实现,不需要了解实现原理,减少使用复杂度,同时提供的类mysql接口,使其对各种语言做到了最大的兼容。
Description
技术领域
本发明涉及社交网络技术领域,尤其涉及一种社交网络中用户信息存储和查找的方法和装置。
背景技术
在目前以通讯录为基础的社交网络中,好友关系的来源主要采自用户的手机通讯录,据可靠统计,大概每个用户平均拥有的联系人数量为200个,而***需要针对这某一个用户,存储他的通讯录好友关系,这样就是200条记录/用户。
目前对于这样的数据处理,通常采用的数据库设计原则来为单库单表,这样的设计是比较直接直观,但是对于海量的数据处理查询,均会有一定的瓶颈和限制性,比如查询延迟,反映缓慢,严重甚至导致数据库崩溃,数据异常丢失。
关于上述海量数据查询瓶颈与限制性,试验如下:
假设以中等规模的社交网络人数粗算为100万用户,根据用户匹配规则,单个用户查询量,也为对应的200个号码/人,预计每个用户在一个月内需要重新扫描一次用户关系,则平均每秒钟需要扫描的用户为,1000000用户/30天/24小时/60秒=23.14个用户,就是说平均每秒需要处理23.14个查询请求,处理需要查询的号码特征为23.14*200=4628条/秒(实际中,100万用户不可能全部为活跃用户,但是计算值为平均值,峰值实际数值有可能为计算值的2-3倍,因此根据***设计最大化原则,此计算公式是合理的)。根据计算数值,在查询峰值时会对一般服务器部署情况的数据库造成压力。另外通常关系型数据库(如mysql)在单表数量达到1000万时即会有数据查询能力下降的表现,如果照前面所述有两亿条数据量,那么查询效率将非常低效。同时,在有索引的情况下,更新操作也将变的极为困难。
在此领域通常做法是将数据扫描后存储入服务器某一数据库,然后进行单一表查找。这将存在两个技术问题,一是整体扫描及传送用户数据,将造成用户使用设备暂时性的占用资源过大,同时网络传输困难,容易丢失部分数据;二是存在单一库单一表中的数据在数据量过大时(如亿级别)查找匹配将变的异常困难,速度慢且消耗大量资源。
发明内容
本发明的目的在于提出一种社交网络中用户信息存储和查找的方法和***,能够为基于手机号码的朋友关系存储及匹配提高可靠的内容支撑。
为达此目的,本发明采用以下技术方案:
一种社交网络中用户信息存储和查找的方法,包括以下步骤:
A、将用户信息数据输入到shard引擎;
B、shard引擎根据内部分散规则将所述用户信息数据分散到数据库分别存储;
C、社交网络服务器收到用户信息查询指令后,将所述查询指令转发给shard引擎;
D、shard引擎通过内建机制向对应的数据库进行查询,取得查询结果;
E、社交网络服务器对查询结果进行整合后返回。
步骤B中,通过并行方式将所述用户信息数据分散到数据库分别存储。
步骤D中,shard引擎通过内建机制,并行向对应的数据库进行查询。
一种社交网络中用户信息存储和查找的***,包括输入装置、shard引擎、数据库、服务器和终端,输入装置与shard引擎连接,shard引擎与数据库连接,shard引擎与服务器连接,服务器与终端连接,其中,
输入装置用于将用户信息数据输入到shard引擎;
shard引擎用于根据内部分散规则将输入装置发来的用户信息数据分散到数据库分别存储,并用于接收服务器发来的用户信息查询指令,通过内建机制向对应的数据库进行查询,取得查询结果,发送给服务器;
数据库用于存储用户信息数据;
服务器用于接收终端发来的用户信息查询指令,转发给shard引擎,并用于接收shard引擎发来的查询结果,对查询结果进行整合后返回给终端;
终端用于向服务器发送用户信息查询指令,并用于接收服务器发来的查询结果。
数据库为不少于2个数据库。
采用了本发明的技术方案,为终端提供了可靠的数据存取速度,通过实现类SQL语句支持,减少了***从原有模式迁移到新模式的复杂度,隐藏了底层实现,不需要了解实现原理,减少使用复杂度,同时提供的类mysql接口,使其对各种语言做到了最大的兼容。
附图说明
图1是本发明具体实施方式中用户信息存储和查找的***结构示意图。
图2是本发明具体实施方式中用户信息存储和查找的流程图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
图1是本发明具体实施方式中用户信息存储和查找的***结构示意图。如图1所示,该应用于社交网络中用户信息存储和查找的***包括输入装置101、shard引擎102、多个数据库103、服务器104和终端105。
输入装置与shard引擎连接,shard引擎与数据库连接,shard引擎与服务器连接,服务器与终端连接。
输入装置将用户信息数据输入到shard引擎,shard引擎根据内部分散规则将输入装置发来的用户信息数据分散到数据库分别存储,并接收服务器发来的用户信息查询指令,通过内建机制向对应的数据库进行查询,取得查询结果,发送给服务器,数据库存储用户信息数据,服务器接收终端发来的用户信息查询指令,转发给shard引擎,并接收shard引擎发来的查询结果,对查询结果进行整合后返回给终端,终端向服务器发送用户信息查询指令,并接收服务器发来的查询结果。
图2是本发明具体实施方式中用户信息存储和查找的流程图。如图2所示,该社交网络中用户信息存储和查找的流程包括以下步骤:
步骤201、通过输入装置将社交网络中海量的用户信息数据输入到shard引擎。
步骤202、shard引擎根据内部分散规则通过并行方式将用户信息数据分散到多个数据库分别存储,由于存储过程是并行执行的,可以减少耗时。
步骤203、社交网络服务器收到终端发来的用户信息查询指令后,将查询指令转发给shard引擎。
步骤204、shard引擎通过内建机制并行向对应的数据库进行查询,取得查询结果。
步骤205、社交网络服务器对查询结果进行整合后返回。
在整个流程中,shard引擎处于服务器应用接口与数据库之间,代理了服务器对数据库的操作。MYSHARD提供给使用方一张“虚表”,就是使用方拿着那张表进行各种操作(haset、hadelete、select)就行了,但实际上,它有个强大的功能就是可以在内部分表,而且对使用方掩盖了这个内部分区。所以对于使用方不必关心数据量有多少,几亿几十亿都可以。MYSHARD内部可能用一个MYSQL、几个MYSQL或几台服务器来完成,但展现给使用方的始终是一张虚表。这个强大的分区对使用方来说是透明的。
相应带来的不便,就是它有一个“分区键”的概念,它就是利用这个分区键,把使用方要操作的记录对应到具体的那台服务器的那个MYSQL的那个database里的那张表里。所以写应用代码,不但要知道这个虚表的KEY,也要有这个分区键的印象。MYSHARD的命令的where后面,要立刻跟上这个分区键。简单说,就是根据分区键找到物理表,然后把语句送过去执行了,但如果where后面没有立刻跟分区键,而且非要这么做,那只好这张表不做任何分区只用一张实体表来完成,等数据量超过一定限度后性能就会下降。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (5)
1.一种社交网络中用户信息存储和查找的方法,其特征在于,包括以下步骤:
A、将用户信息数据输入到shard引擎;
B、shard引擎根据内部分散规则将所述用户信息数据分散到数据库分别存储;
C、社交网络服务器收到用户信息查询指令后,将所述查询指令转发给shard引擎;
D、shard引擎通过内建机制向对应的数据库进行查询,取得查询结果;
E、社交网络服务器对查询结果进行整合后返回。
2.根据权利要求1所述的一种社交网络中用户信息存储和查找的方法,其特征在于,步骤B中,通过并行方式将所述用户信息数据分散到数据库分别存储。
3.根据权利要求1所述的一种社交网络中用户信息存储和查找的方法,其特征在于,步骤D中,shard引擎通过内建机制,并行向对应的数据库进行查询。
4.一种社交网络中用户信息存储和查找的***,其特征在于,包括输入装置、shard引擎、数据库、服务器和终端,输入装置与shard引擎连接,shard引擎与数据库连接,shard引擎与服务器连接,服务器与终端连接,其中,
输入装置用于将用户信息数据输入到shard引擎;
shard引擎用于根据内部分散规则将输入装置发来的用户信息数据分散到数据库分别存储,并用于接收服务器发来的用户信息查询指令,通过内建机制向对应的数据库进行查询,取得查询结果,发送给服务器;
数据库用于存储用户信息数据;
服务器用于接收终端发来的用户信息查询指令,转发给shard引擎,并用于接收shard引擎发来的查询结果,对查询结果进行整合后返回给终端;
终端用于向服务器发送用户信息查询指令,并用于接收服务器发来的查询结果。
5.根据权利要求4所述的一种社交网络中用户信息存储和查找的***,其特征在于,数据库为不少于2个数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100703243A CN103309902A (zh) | 2012-03-16 | 2012-03-16 | 一种社交网络中用户信息存储和查找的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100703243A CN103309902A (zh) | 2012-03-16 | 2012-03-16 | 一种社交网络中用户信息存储和查找的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103309902A true CN103309902A (zh) | 2013-09-18 |
Family
ID=49135139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100703243A Pending CN103309902A (zh) | 2012-03-16 | 2012-03-16 | 一种社交网络中用户信息存储和查找的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103309902A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107851164A (zh) * | 2015-07-27 | 2018-03-27 | 日本电信电话株式会社 | 秘密计算***、秘密计算装置、秘密计算方法和程序 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916261A (zh) * | 2010-07-28 | 2010-12-15 | 北京播思软件技术有限公司 | 一种分布式并行数据库***的数据分区方法 |
CN102333112A (zh) * | 2011-07-22 | 2012-01-25 | 深圳市财富万方信息技术有限公司 | 一种在互联网上共享个人信息的方法和*** |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
-
2012
- 2012-03-16 CN CN2012100703243A patent/CN103309902A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916261A (zh) * | 2010-07-28 | 2010-12-15 | 北京播思软件技术有限公司 | 一种分布式并行数据库***的数据分区方法 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN102333112A (zh) * | 2011-07-22 | 2012-01-25 | 深圳市财富万方信息技术有限公司 | 一种在互联网上共享个人信息的方法和*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107851164A (zh) * | 2015-07-27 | 2018-03-27 | 日本电信电话株式会社 | 秘密计算***、秘密计算装置、秘密计算方法和程序 |
CN107851164B (zh) * | 2015-07-27 | 2021-06-08 | 日本电信电话株式会社 | 秘密计算***、秘密计算装置、秘密计算方法和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104636477B (zh) | 一种信息推送前推送列表的去重方法 | |
CN104182488A (zh) | 搜索方法、服务器及客户端 | |
CN101000623A (zh) | 通过手机拍照进行图像识别搜索的方法及采用该方法的装置 | |
US10333868B2 (en) | Techniques to automate bot creation for web pages | |
JP2011520201A5 (zh) | ||
CN103226393A (zh) | 一种输入方法和设备 | |
CN102591911A (zh) | 位置相关实体的实时个性化推荐 | |
US8977642B2 (en) | Recommending relevant and personalized content accessing keywords for users of a text messaging service based global textsite platform | |
CN101488927A (zh) | 即时通讯装置管理文字信息的方法及一种即时通讯装置 | |
CN103942221B (zh) | 检索方法及设备 | |
CN104090901A (zh) | 一种对数据进行处理的方法、装置及服务器 | |
CN111125523A (zh) | 搜索方法、装置、终端设备及存储介质 | |
CN102142035A (zh) | 一种用于对多个文字信息记录进行排序的方法与设备 | |
CN103020125A (zh) | 提供服务资源的方法、输入的方法及服务器、电子设备 | |
CN107636655A (zh) | 实时提供数据即服务(DaaS)的***和方法 | |
CN103123651A (zh) | 一种快速查看多个同类文件的方法、装置和移动设备 | |
CN102982034A (zh) | 互联网站内信息的搜索方法和搜索*** | |
CN104750860B (zh) | 一种不确定数据的数据存储方法 | |
CN102103606A (zh) | 一种在手机客户端上实现高级检索商品的技术 | |
CN1633141A (zh) | 将sim卡电话簿导入智能终端的方法和所用的智能终端 | |
KR20130064447A (ko) | 사용자의 성향 유사도를 이용한 검색 결과 제공 서버 및 방법, 그리고 단말 | |
CN103309902A (zh) | 一种社交网络中用户信息存储和查找的方法和装置 | |
CN101626628B (zh) | 数字号码与网址映射及推送*** | |
CN101384050A (zh) | 一种移动终端及其资源管理的方法及*** | |
CN101094436A (zh) | 信息互递智能平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130918 |
|
RJ01 | Rejection of invention patent application after publication |