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

    (PECL memcached >= 0.1.0)

    请求多个元素

    说明

    publicMemcached::getDelayed(array $keys[,bool $with_cas[,callback$value_cb]]): bool

    Memcached::getDelayed()向Memcached服务端发出一个检索$keys指定的多个 key对应元素的请求。这个方法不会等待响应而是立即返回。当你需要收集元素值时,调用Memcached::fetch()或Memcached::fetchAll()。如果$with_cas设置为true,会同时请求每个元素的CAS标记。

    可以通过参数$value_cb指定一个result callback来替代明确的抓取结果(fetch或fetchAll为明确抓取方式)。

    参数

    $keys

    要请求的key的数组。

    $with_cas

    是否同时请求CAS标记。

    $value_cb

    结果回掉函数或NULL

    返回值

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

    范例

    Example #1 Memcached::getDelayed()示例

    <?php
    $m = new Memcached();
    $m->addServer('localhost', 11211);
    $m->set('int', 99);
    $m->set('string', 'a simple string');
    $m->set('array', array(11, 12));
    $m->getDelayed(array('int', 'array'), true);
    var_dump($m->fetchAll());
    ?>
    

    以上例程会输出:

    array(2) {
      [0]=>
      array(3) {
        ["key"]=>
        string(3) "int"
        ["value"]=>
        int(99)
        ["cas"]=>
        float(2363)
      }
      [1]=>
      array(3) {
        ["key"]=>
        string(5) "array"
        ["value"]=>
        array(2) {
          [0]=>
          int(11)
          [1]=>
          int(12)
        }
        ["cas"]=>
        float(2365)
      }
    }
    

    参见

    • Memcached::getDelayedByKey() 从指定的服务器上请求多个元素
    • Memcached::fetch() 抓取下一个结果
    • Memcached::fetchAll() 抓取所有剩余的结果
    Actually, when you pass a callback, method doesn't return immediately, but waits for results and calls callback function.