你如何在Riak组织水桶?

The*_*One 3 namespaces organization nosql riak

由于Riak使用水桶作为分离钥匙的方式,是否可以在水桶内装水桶?如果不是,那将如何为多个应用程序组织带有许多存储桶的Riak设置.

基本问题是如何在Riak中表示"数据库"和"表格".由于存储桶转换为表,转换为数据库的是什么?

编程语言中的命名空间通常具有层次结构.由于存储桶本质上是命名空间,因此Riak存储桶也允许层次结构是有意义的.

hdi*_*ima 10

您需要将Riak视为非常大的key -> value"表",其中桶只是键的前缀.现在当你知道你可以对桶做任何事情,只要它们仍然是二进制对象.

您可以创建线性"表格":

<<"table1">>
<<"table2">>
Run Code Online (Sandbox Code Playgroud)

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

<<"db1.table1">>
<<"db1.table2">>
<<"db2.table1">>
<<"db2.table2">>
Run Code Online (Sandbox Code Playgroud)

或者你甚至可以使用元组作为桶:

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>>
Run Code Online (Sandbox Code Playgroud)