如何在 Tarantool 中创建 space?

How to create a space in Tarantool?

我已经启动了 Tarantool 并调用了 box.cfg{} 进行第一次配置。

下一步:我想在 Tarantool 中创建一个 space。 我阅读了文档,但我并没有完全理解所有内容。

我应该怎么做?

通过 Box 创建它 API:

box.schema.sequence.create('user_seq', { if_not_exists = true })
box.schema.create_space('users', { if_not_exists = true, format={
    { name = 'id', type = 'unsigned'},
    { name = 'name', type = 'string'}, 
    { name = 'age', type = 'unsigned'}} 
})
box.space.users:create_index('pk', { parts = { 'id' }, if_not_exists = true })

使用 if_not_exists,如果 space 已经存在,tarantool 将不会尝试创建它。

必须创建索引,因为 Tarantool 不允许您在 space 中插入没有任何索引的数据。

创建 space 后,您可以插入 select 数据:

box.space.users:insert({ box.sequence.user_seq:next(), 'Artur Barsegyan', 24 })
box.space.users:get({1})
---
- - [1, 'Artur Barsegyan']
...

你可以阅读更多in the documentation.

您不需要手动创建序列;只需传递 true,tarantool 将创建一个序列,甚至在您删除 space 时删除它。您也可以跳过 parts 选项,因为它默认为 {1, 'unsigned'}

box.space.users:create_index("pk", { if_not_exists = true, sequence = true })