Table->del

删除数据

bool Table->del(string $key)
  • $key对应的数据不存在,将返回false
  • 成功删除返回true

Key非二进制安全,必须为字符串类型,不得传入二进制数据



  • 想想

    这里有个坑,del后再incr,del 将不起任何作用。

  • quorzz

    $table->set('a', $data]); count($table); // 1

    $table->del('a'); count($table); // 1

    总数没变... osx 系统, swoole 版本 1.7.17

  • smallbaby

    我用1.8.5+删除全部table内容时,使用foreach遍历$k,再用del($k),只能删除一半,不知道为什么.后来只能用while来删除

  • 依然D调

    foreach($table as $row){ $table->del($row['key']); } 请问这样能清空$table吗?

  • Inter韦

    foreach($table as $key=>$row){ $table->del($key); }

  • DavidYANXW

    swoole2.2.0可以正常遍历删除。

        foreach($table as $k=>$item) {
            $table->del($k);
        }
    

  • 混乱的sw

    遍历table执行table->del($key)之后table的空间会释放出来吗,还是说,只是删掉了数据,空间一直被占有,必须要重启服务才能释放table的空间?

  • 混乱的sw

    经过反复试验:table->del(key)会释放内存,但是如果程序运行后,不重启而且以后运行table时的key会改变时,那么这个table就会因为新增加了不同的key而消耗内存,运行多了就会内存爆掉,综合来看,这个table很不安全(常驻内存运行而言),除非每次运行的key都是一样的,否则一定会有爆内存的一天;所以swoole又造了一个看起来很酷的玩具,莫名其妙的问题,非人类的思维方式。