2018年swoole实战8-内存table

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

本篇演示 swoole内存操作模块

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

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

新建 table.php

<?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);

执行结果:

☁  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)

如果觉得本文对你有所帮助,点个赞,或者赏杯咖啡钱,你的认可对我很重要

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一万小时是提升竞争力的前提 作家格拉德威尔在《异类》一书中指出:“人们眼中的天才之所以卓越非凡,并非天资超人一等,...
    悟道修行阅读 4,185评论 0 3
  • 七、韶山冲朝圣 8月28日吃过午饭,向韶山进发。 从湘西的凤凰古城到韶山,是这次行程中时间最长的一段,大约要六个小...
    铁妩阅读 2,870评论 35 26
  • 最近小曹同学的班上刮起了打乒乓球风。前段日子听他说,英语张老师给他们讲了她上学时候非常喜欢打乒乓球,而且打...
    小锅姐阅读 1,549评论 0 1
  • 格列佛被主人从手中以低价卖出,因为他认为格列佛活不了多久了,格列佛被卖给了皇后,皇后很喜欢这个小人。但在大人国中身...
    微笑_8ce8阅读 3,251评论 0 0

友情链接更多精彩内容