The PHP Online Conference 2021

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