我们正在研究为我们的 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,应该如何对数据进行建模才能实现上面的使用场景呢?