2024 年 PHP Conference Japan

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush清除伺服器上所有現有的項目

說明

Memcache::flush(): 布林值

Memcache::flush() 會立即讓所有現有的項目失效。 Memcache::flush() 並不會實際釋放任何資源,它只將所有項目標記為過期,因此佔用的記憶體將會被新的項目覆寫。您也可以使用 memcache_flush() 函式。

參數

此函式沒有參數。

返回值

成功時返回 true,失敗時返回 false

範例

範例 #1 Memcache::flush() 範例

<?php

/* 程序式 API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* 物件導向 API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>

新增註記

使用者貢獻的註記 2 則註記

9
maarten d/ot manders a/t tilllate dotcom
17 年前
請注意,在清除後,您必須等待一段時間(在我的例子中 < 1 秒)才能再次寫入 Memcached。如果您不等待,Memcached::set() 將會返回 1,儘管您的資料實際上並沒有被儲存。
6
匿名
16 年前
來自 memcached 郵件列表

「清除的粒度為一秒。清除將會使所有項目過期,直到同一秒內設定的項目為止。」

在執行 flush() 命令後,必須至少等待一秒鐘才能執行進一步的操作,例如重新填入快取。否則,在 flush() 後不到 1 秒的新項目將會立即失效。

範例
<?php
$memcache
->flush();

$time = time()+1; //一秒後的時間
while(time() < $time) {
//睡眠
}
$memcache->set('key', 'value'); // 重新填入快取
?>
To Top