好像实现web应用程序,如Twitter/Facebook的墙需要1巨大的“饲料”关系表(+用户表) 和真棒缓存机制。(你能推荐一个?)你将如何使用noSQL类型的数据库实现twitter?
我的主问题是,你将如何使用非关系数据库来实现这样的“功能”,例如数据库的键/值类型?
很明显,我想支持使用twitter的用户数量一般和一般。
感谢
好像实现web应用程序,如Twitter/Facebook的墙需要1巨大的“饲料”关系表(+用户表) 和真棒缓存机制。(你能推荐一个?)你将如何使用noSQL类型的数据库实现twitter?
我的主问题是,你将如何使用非关系数据库来实现这样的“功能”,例如数据库的键/值类型?
很明显,我想支持使用twitter的用户数量一般和一般。
感谢
您可以阅读Twitter的是如何做到了在这里:http://highscalability.com/blog/2010/2/19/twitters-plan-to-analyze-100-billion-tweets.html
而且阅读:http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster
没有数据模型,但是相当了解如何大量的信息;)
显然,我想同时支持使用twitter 的用户数量。
对不起,但这个要求是远离现实。 Twitter有一个巨大的服务器场来分割数据以支持其庞大的并发性,你是否拥有与twitter一样多的服务器?
没有实现与Redis的一个Twitter克隆的建筑理念: TwitterAlikeExample
这是一个理论问题,所以让我们假设我有对Redis的架构这样一个农场... – DuduAlul 2010-07-31 18:43:31
:加分片和复制像Twitter一样。 – 2010-07-31 19:21:47
我的消息队列系统'使用Redis。每个用户的密钥队列+这些密钥检索的blob集。
我将把MongoDB放入列表中。
模式将会非常简单。
鸣叫
用户名(或者如果想归位用户ID)
TweetID(一个唯一的号码)
时间戳
分享Tweet(推特文本)
用户
用户名(可选) 用户名
姓名,电子邮件,个人信息(网址等) 密码(哈希)
关注者(重复用户参考)
以下(重复用户参考)
好的,你如何有效地查询所有关注的人的tweet – DuduAlul 2010-08-02 18:53:05
我最近写了一个使用HBase的twitter数据层的最小实现。如果你有兴趣,你可以看看这个要点:https://gist.github.com/1101316。第一个文件CreateTwitterTable.java具有创建hbase表及其相关列族的代码。第二个文件TwitterClient。java的基本功能的代码有getTimeline,addTweet,deleteTweet,followUser,unfollowUser和addUser。
您的问题的答案高度依赖于确切的DB类型 – 2010-07-24 22:22:39
Twitter正在使用MySQL存储推文:http://engineering.twitter.com/2010/07/cassandra-at-twitter-today.html – 2010-07-24 22:32:29
我的问题不在于Twitter如何实施他们的解决方案,而是如何实施它? – DuduAlul 2010-07-24 22:52:37