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 年前
请注意,刷新后,您必须等待一定时间(在我的情况下为 < 1s)才能再次写入 Memcached。 如果您不这样做,Memcached::set() 将返回 1,尽管您的数据实际上没有保存。
匿名
16 年前
来自 memcached 邮件列表

"刷新具有 1 秒的粒度。 刷新将使所有项目过期,直到在同一秒内设置的项目为止。"

在执行进一步的操作(如重新填充缓存)之前,必须在 flush() 命令之后等待至少一秒钟。 否则,刷新后 < 1 秒的新项目将立即失效。

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

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