Table->del
删除数据
bool Table->del(string $key)
$key
对应的数据不存在,将返回false
- 成功删除返回
true
Key非二进制安全,必须为字符串类型,不得传入二进制数据
请勿在遍历时删除
删除数据
bool Table->del(string $key)
$key
对应的数据不存在,将返回false
true
Key非二进制安全,必须为字符串类型,不得传入二进制数据
请勿在遍历时删除
这里有个坑,del后再incr,del 将不起任何作用。
$table->set('a', $data]); count($table); // 1
$table->del('a'); count($table); // 1
总数没变... osx 系统, swoole 版本 1.7.17
我用1.8.5+删除全部table内容时,使用foreach遍历$k,再用del($k),只能删除一半,不知道为什么.后来只能用while来删除
foreach($table as $row){ $table->del($row['key']); } 请问这样能清空$table吗?
foreach($table as $key=>$row){ $table->del($key); }
遍历table执行table->del($key)之后table的空间会释放出来吗,还是说,只是删掉了数据,空间一直被占有,必须要重启服务才能释放table的空间?
经过反复试验:table->del(key)会释放内存,但是如果程序运行后,不重启而且以后运行table时的key会改变时,那么这个table就会因为新增加了不同的key而消耗内存,运行多了就会内存爆掉,综合来看,这个table很不安全(常驻内存运行而言),除非每次运行的key都是一样的,否则一定会有爆内存的一天;所以swoole又造了一个看起来很酷的玩具,莫名其妙的问题,非人类的思维方式。
只能说有点鸡肋吧,多进程就是这样,table能做到自动扩容就好了