Swoole 內存操作(Table)
阿新 • • 發佈:2018-07-08
iphonex 生產 多線程 完全 hone 表名 場景 創建表格 new
使用:
//實例化表格,參數 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)