正常情况下使用 Table 组件,我们都应该在配置文件中定义好需要创建的内存表,以及结构。
配置文件地址:/config/swoole_table.php
。
框架会根据该配置内容,在服务启动前初始化好对应的内存表。
注意:如果需要在Swoole的消息事件中动态创建内存表,您需要对Swoole的生命周期、作用域非常熟悉,否则不建议开发者这样使用。
示例,创建一个user
表,最大行数上限5000
,
字段:
1、name
,字符串类型,最大长度30个字节:
return [
[
'table' => 'user',
'length' => 5000,
'field' => [
'name' => [
'type' => \Swoole\Table::TYPE_STRING,
'size' => 30,
]
]
]
];
配置解释:
return [
[
'table' => '',// 表名
'length' => 0,// 表最大行数上限
'field' => [ // 字段信息
'字段名' => [
'type' => , // 字段类型,参考Swoole的Table章节
'size' => 0,// 字段长度限制
]
]
]
];
以下是Swoole\Table的字段类型,最新的建议参考Swoole官网。
类型 | 说明 |
---|---|
\Swoole\Table::TYPE_INT | 默认为 8 个字节 |
\Swoole\Table::TYPE_STRING | 设置后,设置的字符串不能超过 $size 指定的最大长度 |
\Swoole\Table::TYPE_FLOAT | 会占用 8 个字节的内存 |
由于内存表是操作内存,服务重启后对应的内存表会被重新创建,如果需要重新初始化对应的数据,可以在框架生命周期:/box/lifecycle/swoole_table_start
中进行业务编写。
具体参考:生命周期章节。
注意:该生命周期回调只在对start
阶段有效,reload
热更新并不会触发该事件。