2024年PHP开发者大会日本站

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace替换现有条目的值

描述

Memcache::replace(
    字符串 $key,
    混合 $var,
    整数 $flag = ?,
    整数 $expire = ?
): 布尔值

Memcache::replace() 用于替换具有 key 的现有条目的值。如果不存在具有该键的条目,则 Memcache::replace() 返回 false。其余情况下,Memcache::replace() 的行为与 Memcache::set() 类似。您也可以使用 memcache_replace() 函数。

参数

与条目关联的键。

变量

要存储的变量。字符串和整数按原样存储,其他类型序列化后存储。

标志

使用 MEMCACHE_COMPRESSED 来压缩存储条目(使用zlib)。

过期时间

条目的过期时间。如果等于零,则条目永不过期。您也可以使用 Unix 时间戳或从当前时间开始的秒数,但在后一种情况下,秒数不得超过 2592000(30 天)。

返回值

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

示例

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

<?php

$memcache_obj
= memcache_connect('memcache_host', 11211);

/* 过程式API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* OO API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

参见

添加笔记

用户贡献笔记 1 条笔记

10
adam.pippin [AT] ohmedia.ca
14年前
此页面提到应使用 replace 而不是 set,但没有说明原因。我能找到的最佳信息是“argyleblanket”在 set 页面的评论。(https://php.net/manual/en/memcache.set.php#84032)

“对同一键多次使用 set 似乎会产生意外结果 - 它并不像“替换”那样工作,而是似乎对同一键“设置”多个值。“get”可能会返回任何值。

这在多服务器设置中进行了测试 - 如果您只有一台服务器,则行为可能不同。
To Top