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作為數據共享層


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM