你如何在Riak组织水桶?

时间:2011-05-25 19:22:20

标签: namespaces nosql organization riak

由于Riak使用存储桶作为分离密钥的方式,是否可以在存储桶中使用存储桶?如果不是,那么如何为多个应用程序组织一个带有许多存储桶的Riak设置。

基本问题是如何在Riak中表示“数据库”和“表格”。由于存储桶转换为表格,会转换为数据库吗?

编程语言中的命名空间通常具有层次结构。 Riak存储桶也允许层次结构,因为存储桶本质上是名称空间。

1 个答案:

答案 0 :(得分:10)

您需要考虑Riak关于非常大的key -> value“表格”buckets are only prefixes for keys。现在,只要它们仍然是二进制对象,您就知道可以对存储桶执行任何操作。

您可以创建线性“表格”:

<<"table1">>
<<"table2">>

或者您可以创建层次结构:

<<"db1.table1">>
<<"db1.table2">>
<<"db2.table1">>
<<"db2.table2">>

或者您甚至可以将元组用作存储桶:

1> term_to_binary({"db1", "table1"}).
<<131,104,2,107,0,3,100,98,49,107,0,6,116,97,98,108,101,49>>
2> term_to_binary({"db1", "table2"}).
<<131,104,2,107,0,3,100,98,49,107,0,6,116,97,98,108,101,50>>
3> term_to_binary({"db2", "table1"}).
<<131,104,2,107,0,3,100,98,50,107,0,6,116,97,98,108,101,49>>
4> term_to_binary({"db2", "table2"}).
<<131,104,2,107,0,3,100,98,50,107,0,6,116,97,98,108,101,50>>