使用:
//实例化表格,参数 int : 最大行数$table = new swoole_table(1024);//设置表格字段 参数 (字段名:string , 字段类型:int、float、string , 长度:int)$table->column('id',$table::TYPE_INT,4);$table->column('name',$table::TYPE_STRING,64);$table->column('price',$table::TYPE_INT,11);//创建表格$table->create();//添加数据 两种方式$table->set('iphoneX',['id'=>1,'name'=>'iphoneX','price'=>9999]);$table['xiaomi'] = ['id'=>2,'name'=>"小米",'price'=>3339];foreach ($table as $key => $value) { var_dump($value); echo PHP_EOL ;}//单独设置某字段自增 参数('表名',’字段名‘,’步长‘)$table->incr('iphoneX','price',1000);var_dump($table->get('iphoneX'));//单独设置字段自减$table->decr('xiaomi','price',1000);var_dump($table->get('xiaomi'));//删除某条数据$table->del('xiaomi');//判断数据是否存在if(!$table->exist('xiaomi')){ echo '不存在此字段';}
Swoole 内存表优点:
- 速度快,单线程每秒可读写100万次。8核机器8线程可以支持每秒并发读写400万次
- 不占用IO资源
- 无需加锁,swoole_table内置行锁自选锁,所有操作均是多线程/多进程安全。用户层完全不需要考虑数据同步问题
使用场景:
- 可以用于解决多进程之间数据共享问题
*swoole_table模块目前为实验性质,不建议在生产环境使用。请使用成熟的方案Redis/Apc/Yac作为数据共享层