使用:

//实例化表格,参数 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)的更多相关文章

  1. Swoole 中使用 Table 内存表实现进程间共享数据

    背景 在多进程模式下进程之间的内存是相互隔离的,在一个工作进程中的全局变量和超全局变量,在另一个工作进程中是无法读取和操作的. 如果只有一个工作进程,则不存在进程隔离问题,可以使用全局变量和超全局变量 ...

  2. js实现动态操作table

     本章案例为通过js,动态操作table,实现在单页面进行增删改查的操作. 简要案例如下: <%@ page language="java" contentType=&quo ...

  3. jQuery操作Table tr td常用的方法

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...

  4. 汇总常用的jQuery操作Table tr td方法

    虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ...

  5. java 21-11 数据输入、输出流和内存操作流

    IO数据流: 可以读写基本数据类型的数据 数据输入流:DataInputStream DataInputStream(InputStream in)   数据输出流:DataOutputStream ...

  6. 【转】《深入理解计算机系统》C程序中常见的内存操作有关的典型编程错误

    原文地址:http://blog.csdn.net/slvher/article/details/9150597 对C/C++程序员来说,内存管理是个不小的挑战,绝对值得慎之又慎,否则让由上万行代码构 ...

  7. JQuery操作Table元素

    使用Jquery操作Table中的tr向上或向下移动,以及全选和反选操作. 点击Table Head中的复选框,全选或反选表格中所有的复选框; 选中复选框,点击Up 按钮, tr上移;点击 Down ...

  8. c++ void,内存操作函数

    void的含义 void的字面意思是“无类型”, void * 则为“无类型指针”, void * 可以指向任何类型的数据 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变 ...

  9. java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)

    直接看代码: package cn.itcast.io.p6.bytestream; import java.io.ByteArrayInputStream; import java.io.ByteA ...

随机推荐

  1. Lucene suggest [转]

      The Big Data Zone is presented by Splunk, the maker of data analysis solutions such as Hunk, an an ...

  2. 使用R语言-操作data.frame

    1 向一个data.frame指定列插入一列新数据 1.1 插入一列到指定位置 y<-1:4 data1 <-data.frame(x1=c(1,3,5,7), x2=c(2,4,6,8) ...

  3. 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值---部分内容可能不确切,待讨论

    1.阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回值  ...

  4. ==和is

    is是比较两个引用是否指向了同一个对象(引用比较) ==是比较两个对象是否相等 数字在:-5~256之间的时候用来赋值的内存地址是不变的

  5. window的三大功能,行内样式获取的讲解 getcomputerStyle

    window的三大功能: js引擎 dom渲染 获取行内中css的属性: chrome和Firefox加上 ie9+(所谓的高级浏览器)用的方法: window.getComeputerStyle(d ...

  6. springmvc使用步骤

    1.导包 2.在web.xml文件中配置前端控制器dispatchServlet 3.创建springmvc配置文件springmvc.xml 4.编写controller 5.在springmvc中 ...

  7. win10配置labelImg

    [引言]在目标检测中,需要用图像标注工具标注图像,如Labelme . labelImg等,本文使用的是LabelImg ,LabelImg在Ubuntu下很好部署, 在win10中有些地方要注意下, ...

  8. windows 下安装 docker

    1. 使用阿里云的镜像进行安装: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 2. 安装完成后点击图标 “Dock ...

  9. linux中tree命令

    需要安装tree包(安装:yum -y install tree). tree命令的选项说明如下: [ 匹配选项:] -L:用于指定递归显示的深度,指定的深度必须是大于0的整数. -P:用于显示统配符 ...

  10. 《机器学习实战》KNN算法实现

    本系列都是参考<机器学习实战>这本书,只对学习过程一个记录,不做详细的描述! 注释:看了一段时间Ng的机器学习视频,感觉不能光看不练,现在一边练习再一边去学习理论! KNN很早就之前就看过 ...