函数名:Swoole\Table::__construct()
适用版本:Swoole 1.9.0+
用法:Swoole\Table::__construct() 用于创建一个内存表对象。内存表是一种高性能的数据结构,用于在多个进程或协程之间共享数据。
参数:
- $tableSize(必填):内存表的容量大小,以行数为单位。注意,容量大小必须是2的幂次方,且不能超过65536。
- $conflictProportion(可选):冲突比例,用于计算哈希冲突的概率。默认值为0.2,取值范围为0到1之间。
示例:
$table = new Swoole\Table(1024); // 创建一个容量为1024行的内存表对象
$table->column('id', Swoole\Table::TYPE_INT); // 添加一个名为id的列,类型为整数
$table->column('name', Swoole\Table::TYPE_STRING, 64); // 添加一个名为name的列,类型为字符串,长度为64
$table->column('score', Swoole\Table::TYPE_FLOAT); // 添加一个名为score的列,类型为浮点数
$table->create(); // 创建内存表
$table->set('user1', ['id' => 1, 'name' => 'John', 'score' => 98.5]); // 向内存表插入一行数据
$table->set('user2', ['id' => 2, 'name' => 'Alice', 'score' => 92.0]);
$data = $table->get('user1'); // 从内存表中获取指定行的数据
echo $data['name']; // 输出 John
$table->del('user2'); // 从内存表中删除指定行的数据
$table->exist('user1'); // 检查指定行是否存在于内存表中,返回 true 或 false
注意事项:
- 在创建内存表之前,需要使用
column()
方法定义内存表的列结构。 - 每个列都需要指定类型,可选的类型有
Swoole\Table::TYPE_INT
、Swoole\Table::TYPE_FLOAT
和Swoole\Table::TYPE_STRING
。 - 字符串类型的列需要指定长度。
- 调用
create()
方法后,才会真正创建内存表。 - 使用
set()
方法向内存表插入数据,传入的第一个参数为行的唯一标识符,第二个参数为关联数组,键名对应列名,键值对应数据。 - 使用
get()
方法从内存表中获取指定行的数据,返回一个关联数组。 - 使用
del()
方法从内存表中删除指定行的数据。 - 使用
exist()
方法检查指定行是否存在于内存表中,返回布尔值。