PHP Conference Japan 2024

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti存储多个项目

描述

public Memcached::setMulti(数组 $items, 整数 $expiration = 0): 布尔值

Memcached::setMulti() 类似于 Memcached::set(),但它不是单个键/值项,而是对 items 中指定的多个项进行操作。 expiration 时间一次应用于所有项目。

参数

items

要存储在服务器上的键/值对数组。

expiration

过期时间,默认为 0。有关更多信息,请参阅 过期时间

返回值

成功时返回 true,失败时返回 false。如有必要,请使用 Memcached::getResultCode()

示例

示例 #1 Memcached::setMulti() 示例

<?php
$m
= new Memcached();
$m->addServer('localhost', 11211);

$items = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
);
$m->setMulti($items, time() + 300);
?>

参见

添加注释

用户贡献的注释 3 条注释

nulll
6 年前
上一条评论来自 2013 年 4 月,它有一个指向当前主分支的链接,因此自 2013 年以来源代码发生了变化。

也许正确的链接是
https://github.com/php-memcached-dev/php-memcached/blob/80cb21467a1db6b7b18725df586f11801c823695/php_memcached.c#L1219

顺便问一下,有谁能精通 C 语言的人确认“伪造的 setMulti”问题吗?
jooonic at googlemail dot com
14 年前
不要指望 setmulti 比多个 SET 快!
它没有使用 setmulti 库函数,而是迭代每个键并单独发送。
我找不到任何支持 setmulti 的 php 实现(需要支持 memcached 的二进制协议,请记住 php 的“memcache”扩展只支持文本协议)。
这很糟糕,membase 的吞吐量不够。
所以我必须使用 redis,因为它支持 get/set multi。
To Top