Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti存储多个项目

描述

public Memcached::setMulti(array $items, int $expiration = 0): bool

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
13 年前
不要期望 setmulti 比多个 SET 更快!
它不使用 setmulti 库函数,它遍历每个键并单独发送。
我找不到任何支持 setmulti 的 php 实现(需要支持 memcached 的二进制协议,请记住 php 的“memcache”扩展只支持文本协议)。
这很糟糕,无法满足 membase 的吞吐量。
所以我必须使用 redis,因为它支持 get/set multi。
To Top