PHPKonf 2020 Online

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti複数のアイテムを格納する

説明

public Memcached::setMulti ( array $items [, int $expiration ] ) : 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($itemstime() + 300);
?>

参考

add a note add a note

User Contributed Notes 3 notes

up
4
Nicolas
7 years ago
up
2
nulll
2 years ago
The previous comment is from April 2013, it has a link pointing on current master, so things are changed since 2013 in the source code.

Maybe the right link is
https://github.com/php-memcached-dev/php-memcached/blob/80cb21467a1db6b7b18725df586f11801c823695/php_memcached.c#L1219

By the way, can someone skilled in C confirm the "fake setMulti" problem?
up
0
jooonic at googlemail dot com
10 years ago
Dont expect setmulti is faster then multiple SETs!
It doesn't use the setmulti lib function, it iterats over every key and send him alone.
I can't find any php implementation with setmulti support (needs support for memcached's binary protocol, remember php's "memcache"-extension only supports text-protocol).
Thats bad, not enought throughput to membase.
So i have to use redis instead, coz of its support for get/set multi.
To Top