1

我们正在研究为我们的 Web 服务选择一个 nosql 数据库。我们已经尝试了 Cassandra,并成功地使用 Cassandra 列族和超级列族对我们的原始 MySQL 数据进行了建模。这是一个非常有趣的经历。现在,我们开始研究 Riak 并想知道如何使用 Riak 对 Cassandra 的超级列族进行建模。

比如我们有一个超级列族来存储一个用户的所有好友,其中用户的id为key,好友连接时的时间戳为辅键,节点列族中好友的键值对。

uid1 ---- t1 ---- key1 : value11
                  key2 : value12

          t2 ---- key1 : value21
                  key2 : value22

          ...     ...    ...

uid2 ---- tm ---- key1 : valuem1
                  key2 : valuem2

          tn ---- key1 : valuen1
                  key2 : valuen2

          ...     ...    ...


uidx ---- .... 

通过上述数据建模,一种用法是我们可以进行范围查询以获取给定时间范围内连接的用户(uid1,例如)的所有(或给定计数)朋友。

使用Riak,应该如何对数据进行建模才能实现上面的使用场景呢?

4

1 回答 1

1

在 Riak 你会使用Links。您将存储用户信息、朋友的用户信息,然后创建从一个朋友到另一个朋友的“链接”。如果您愿意,这可以是双向的。

Link: </riak/users/alice>; riaktag="bob"
于 2012-07-17T20:50:13.450 回答