• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Memcached::setMulti()

    (PECL memcached >= 0.1.0)

    存储多个元素

    说明

    publicMemcached::setMulti(array $items[,int $expiration]): bool

    Memcached::setMulti()类似于Memcached::set(),但是使用了参数$items指定多个元素来替代单独的key/value设置以便于对多个元素的操作。$expiration参数指定的时候一次应用到所有的元素上。

    参数

    $items

    存放在服务器上的键/值对数组。

    $expiration

    到期时间,默认为 0。更多信息请参见到期时间。

    返回值

    成功时返回TRUE,或者在失败时返回FALSE。如需要则使用Memcached::getResultCode()。

    范例

    Example #1 Memcached::setMulti()示例

    <?php
    $m = new Memcached();
    $m->addServer('localhost', 11211);
    $items = array(
        'key1' => 'value1',
        'key2' => 'value2',
        'key3' => 'value3'
    );
    $m->setMulti($items, time() + 300);
    ?>
    

    参见

    • Memcached::setMultiByKey() Store multiple items on a specific server
    • Memcached::set() 存储一个元素
    This is what the previous comment (fake set multi):
    https://github.com/php-memcached-dev/php-memcached/blob/master/php_memcached.c#L1219
    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?
    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.