如何使用Cassandra存储与论坛成员相关的数据?

时间:2011-02-02 21:49:26

标签: database nosql cassandra

Hii那里,

我的问题与论坛中的群组有关,与LinkedIn群组非常相似。

如何在论坛中存储组中所有用户的列表?...当组的大小非常大时,如组中的数万名成员?

另外,如何找到该组中用户的相互联系?

1 个答案:

答案 0 :(得分:2)

我建议每组执行一行,每个成员都有一列。这适用于该组中的任何数量的用户。

关于查找“相互连接”,处理此问题的最简单方法是扫描第二个用户的连接并比较两者。

这是一个替代策略:假设我们想要找到组'G'中用户'A'的所有相互连接。如果A的连接行中的列使用连接的用户名(或用户ID)作为列名,则可以(使用pycassa语法):

group_members = GROUPS.get('G').keys()
group_members.remove('A')
user_connections = USERS.get('A').keys()
mutual_connections = USERS.multiget(group_members, columns=connections)

基本上,这将为组中的每个用户排成一行,并仅拉出与原始用户的连接对应的列。这会将工作从客户端转移到Cassandra,但如果没有性能测试,很难说这对Cassandra有多少额外的工作。