Join 4,000+ others and never miss out on new tips, tutorials, and more.
4.x is outdated, please check the latest version 22.x
Latest version:
pecl install openswoole-22.1.2
Swoole table is a high performance memory management module, implemented based on shared memory and spin lock. It can be used by multiple processes: worker process or task worker process.
One row can be modified and accessed by multiple threads or processes. Global variables can be shared or used by multiple Swoole Worker processes.
Swoole table provides a two dimensions memory table for developers.
For performance reason, from v4.7.0, you can't use object of type Swoole\Table as array.
Swoole\Table->__construct
Swoole\Table->column
Swoole\Table->create
Swoole\Table->destroy
Swoole\Table->set
Swoole\Table->get
Swoole\Table->count
Swoole\Table->del
Swoole\Table->exists
Swoole\Table->incr
Swoole\Table->decr
Swoole\Table->getMemorySize
Swoole\Table->offsetExists
Swoole\Table->offsetGet
Swoole\Table->offsetSet
Swoole\Table->offsetUnset
Swoole\Table->rewind
Swoole\Table->next
Swoole\Table->current
Swoole\Table->key
Swoole\Table->valid
Swoole\Table\Row->offsetExists
Swoole\Table\Row->offsetGet
Swoole\Table\Row->offsetSet
Swoole\Table\Row->offsetUnset
For performance reason, from v4.7.0, you can't use object of type Swoole\Table as array.
<?php
$table = new Swoole\Table(1024);
$table->column('name', Swoole\Table::TYPE_STRING, 64);
$table->column('id', Swoole\Table::TYPE_INT, 4); //1,2,4,8
$table->column('num', Swoole\Table::TYPE_FLOAT);
$table->create();
$table->set('a', array('id' => 1, 'name' => 'swoole-co-uk', 'num' => 3.1415));
$table->set('b', array('id' => 2, 'name' => "swoole-uk", 'num' => 3.1415));
$table->set('[email protected]', array('id' => 3, 'name' => 'swoole', 'num' => 3.1415));
var_dump($table->get('a'));
var_dump($table->get('b', 'name'));
More Swoole Table Example: /docs/modules/swoole-table-example
The iterator and countable depends on pcre-devel
<?php
foreach($table as $row) {
var_dump($row);
}
echo count($table);