PHP Conference Japan 2024

Memcached::setMulti

(PECL memcached >= 0.1.0)

Memcached::setMulti儲存多個項目

說明

public Memcached::setMulti(陣列 $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 月,它有一個指向目前 master 的連結,所以自 2013 年以來原始碼已經改變了。

也許正確的連結是
https://github.com/php-memcached-dev/php-memcached/blob/80cb21467a1db6b7b18725df586f11801c823695/php_memcached.c#L1219

順便問一下,有 C 語言能力的人可以確認「假的 setMulti」問題嗎?
jooonic at googlemail dot com
14 年前
別指望 setMulti 比多個 SET 快!
它沒有使用 setMulti 函式庫函式,而是迭代每個鍵並單獨發送。
我找不到任何支援 setMulti 的 PHP 實作(需要支援 memcached 的二進位協定,請記住 PHP 的「memcache」擴充功能僅支援文字協定)。
這很糟糕,沒有足夠的吞吐量到 membase。
所以我必須改用 redis,因為它支援 get/set multi。
To Top