PHP Conference Japan 2024

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush刷新服务器上所有现有项目

描述

Memcache::flush(): bool

Memcache::flush() 会立即使所有现有项目失效。Memcache::flush() 实际上并没有释放任何资源,它只是将所有项目标记为已过期,因此已占用的内存将被新项目覆盖。您也可以使用 memcache_flush() 函数。

参数

此函数没有参数。

返回值

成功时返回 true,失败时返回 false

示例

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

<?php

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

memcache_flush($memcache_obj);

/* OO API */

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

$memcache_obj->flush();

?>

添加注释

用户贡献的注释 2 条注释

maarten d/ot manders a/t tilllate dotcom
17 年前
请注意,刷新后,您必须等待一段时间(在我的情况下< 1 秒)才能再次写入 Memcached。如果不这样做,Memcached::set() 将返回 1,尽管您的数据实际上并未保存。
匿名
16 年前
来自 memcached 邮件列表

“flush 的粒度为一秒。flush 将使在同一秒内设置的所有项目过期。”

在 flush() 命令后至少等待一秒钟再执行其他操作(例如重新填充缓存)非常重要。否则,在 flush() 后< 1 秒的新项目将立即失效。

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

$time = time()+1; // 一秒后的时间
while(time() < $time) {
// 睡眠
}
$memcache->set('key', 'value'); // 重新填充缓存
?>
To Top