这是前一条评论(伪造的 setMulti)
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);
?>
这是前一条评论(伪造的 setMulti)
https://github.com/php-memcached-dev/php-memcached/blob/master/php_memcached.c#L1219
上一条评论来自 2013 年 4 月,它有一个指向当前主分支的链接,因此自 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。