This is what the previous comment (fake set multi):
https://github.com/php-memcached-dev/php-memcached/blob/master/php_memcached.c#L1219
(PECL memcached >= 0.1.0)
Memcached::setMulti — Сохраняет несколько записей
Метод 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);
?>
This is what the previous comment (fake set multi):
https://github.com/php-memcached-dev/php-memcached/blob/master/php_memcached.c#L1219
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?
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.