Swoole 内存操作(Table)
Posted xiaoliwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swoole 内存操作(Table)相关的知识,希望对你有一定的参考价值。
使用:
//实例化表格,参数 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作为数据共享层
以上是关于Swoole 内存操作(Table)的主要内容,如果未能解决你的问题,请参考以下文章