Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment增加项目的价值

描述

Memcache::increment(string $key, int $value = 1): int|false

Memcache::increment() 按指定的 value 增加项目的价值。如果由 key 指定的项目不是数字并且不能转换为数字,它将把它的值更改为 valueMemcache::increment() 不会 在项目不存在时创建它。

注意:

不要对已压缩存储的项目使用 Memcache::increment(),因为随后对 Memcache::get() 的调用将会失败。

您也可以使用 memcache_increment() 函数。

参数

key

要增加的项目的键。

value

value 增加项目。

返回值

成功时返回新的项目值,失败时返回 false

示例

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

<?php

/* 过程式 API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* 将计数器增加 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* 将计数器增加 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

参见

添加注释

用户贡献的注释 5 个注释

8
jay dot paroline at escapemg dot com
15 年前
与其在增加前检查值,您只需在每次增加前添加它。如果它已经存在,您的添加将被忽略,如果它不存在,它将被设置。

如果您按顺序添加($memcacheKey, 0) 然后增加($memcacheKey, 1),您将避免所有可能的竞争条件。如果两个线程同时运行此代码,无论线程以何种顺序执行,您最终都会得到值为 2。
2
匿名
15 年前
请注意
如果键不存在,memcache 不会返回 false(正如您预期的那样),而是返回 0。
您将不会得到任何提示表明键不存在并且仍然不存在,并且没有任何东西被增加。
0
perroazul64 at gmail dot com
13 年前
当键不存在时,它可能会返回 bool(false) 或 int(0)(我在不同的服务器上得到不同的返回值),因此如果您检查类似 ($memcache->increment($key) === false) 的内容,请小心。
0
ian at blip dot fm
15 年前
请小心使用 Memcache::decrement(),绝不要对 Memcache::increment() 使用负值。

防止 Memcache::decrement() 变成负数的检查在 Memcache::increment() 中并不存在,因此您最终可能会在预期值的位置存储一个大约 18 千兆的垃圾整数。
-2
匿名
19 年前
如果不存在变量,即使您指定了增加值,结果也将为 null。

如果您将此用于互斥锁,请检查它是否为 null,如果是,则添加该变量。
To Top