前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018年swoole实战8-内存table

2018年swoole实战8-内存table

作者头像
章鱼喵
发布2018-08-02 15:21:00
6050
发布2018-08-02 15:21:00
举报
文章被收录于专栏:codingcoding

继上篇 2018年swoole实战7-进程详解

本篇演示 swoole内存操作模块

swoole_table一个基于共享内存和锁实现的超高性能,并发数据结构。用于解决多进程/多线程数据共享和同步加锁问题。既然称之为table, 就像表格一个由行与列组成,这点与mysql的数据表类似

以下演示内存table的基础操作

新建 table.php

代码语言:javascript
复制
<?php
// 创建内存表
$table = new swoole_table(1024);

// 在内存表中增加列
$table->column('id', $table::TYPE_INT, 4);
$table->column('name', $table::TYPE_STRING, 64);
$table->column('age', $table::TYPE_INT, 3);
$table->create();

// 增加一行记录
$table->set('one', ['id' => 1, 'name' => '章北海', 'age' => 30]);

// 另一种写法
$table['two'] = [
    'id' => 2,
    'name' => '罗辑',
    'age' => 33,
];

// 获取记录
$one = $table->get('one');
$two = $table->get('two');
var_dump($one);
var_dump($two);

// 数据自减
$table->decr('one', 'age', 2);
$one = $table->get('one');
var_dump($one);

// 删除数据
$table->del('one');
$one = $table->get('one');
var_dump($one);

执行结果:

代码语言:javascript
复制
☁  memory  php table.php
array(3) {
  ["id"]=>
  int(1)
  ["name"]=>
  string(9) "章北海"
  ["age"]=>
  int(30)
}
array(3) {
  ["id"]=>
  int(2)
  ["name"]=>
  string(6) "罗辑"
  ["age"]=>
  int(33)
}
array(3) {
  ["id"]=>
  int(1)
  ["name"]=>
  string(9) "章北海"
  ["age"]=>
  int(28)
}
bool(false)
 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.07.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档