1. 程式人生 > >Swoole 內存操作(Table)

Swoole 內存操作(Table)

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)