ConFoo 2025

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 notes

up
5
Nicolas
11 years ago
up
3
nulll
6 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
2
jooonic at googlemail dot com
14 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