swoole_table->__construct [编辑本页]

创建内存表。

swoole_table->__construct(int $size)
  • 创建对象后会创建一个Mutex锁
  • $table->lock()/$table->unlock()在创建后即可使用
  • $size参数指定表格的最大行数,必须为2的指数,如1024,8192,65536等
  • table占用的内存总数为 (结构体长度 + KEY长度64字节 + 行尺寸$size) * (1.2预留20%作为hash冲突) * (列尺寸),如果机器内存不足table会创建失败
  • set操作能存储的最大行数与$size无关,如$size为1024实际可存储的行数小于1024

swoole_table基于行锁,所以单次set/get/del在多线程/多进程的环境下是安全的
set/get/del是原子操作,用户代码中不需要担心数据加锁和同步的问题