這就是先前註釋的內容(假的 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
時間同時應用於所有項目。
成功時返回 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);
?>
這就是先前註釋的內容(假的 set multi)
https://github.com/php-memcached-dev/php-memcached/blob/master/php_memcached.c#L1219
先前的註釋來自 2013 年 4 月,它有一個指向目前 master 的連結,所以自 2013 年以來原始碼已經改變了。
也許正確的連結是
https://github.com/php-memcached-dev/php-memcached/blob/80cb21467a1db6b7b18725df586f11801c823695/php_memcached.c#L1219
順便問一下,有 C 語言能力的人可以確認「假的 setMulti」問題嗎?
別指望 setMulti 比多個 SET 快!
它沒有使用 setMulti 函式庫函式,而是迭代每個鍵並單獨發送。
我找不到任何支援 setMulti 的 PHP 實作(需要支援 memcached 的二進位協定,請記住 PHP 的「memcache」擴充功能僅支援文字協定)。
這很糟糕,沒有足夠的吞吐量到 membase。
所以我必須改用 redis,因為它支援 get/set multi。