首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Memcached::getMulti

(PECL memcached >= 0.1.0)

Memcached::getMulti — Retrieve multiple items

Description

代码语言:javascript
复制
public mixed Memcached::getMulti ( array $keys [, int $flags ] )

Memcached::getMulti() is similar to Memcached::get(), but instead of a single key item, it retrieves multiple items the keys of which are specified in the keys array.

Note: Before v3.0 a second argument &cas_tokens was in use. It was filled with the CAS token values for the found items. The &cas_tokens parameter was removed in v3.0 of the extension. It was replaced with a new flag Memcached::GET_EXTENDED that needs is to be used as the value for flags.

The flags parameter can be used to specify additional options for Memcached::getMulti(). Memcached::GET_PRESERVE_ORDER ensures that the keys are returned in the same order as they were requested in. Memcached::GET_EXTENDED ensures that the CAS tokens will be fetched too.

Parameters

keys

Array of keys to retrieve.

flags

The flags for the get operation.

Return Values

Returns the array of found items or FALSE on failure. Use Memcached::getResultCode() if necessary.

Examples

Example #1 Memcached::getMulti() example for Memcached v3

代码语言:javascript
复制
<?php
//?Valid?for?v3?of?the?extension

$m?=?new?Memcached();
$m->addServer('localhost',?11211);

$items?=?array(
????'key1'?=>?'value1',
????'key2'?=>?'value2',
????'key3'?=>?'value3'
);
$m->setMulti($items);
$result?=?$m->getMulti(array('key1',?'key3',?'badkey'));
var_dump($result);
?>

The above example will output something similar to:

代码语言:javascript
复制
array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}

Example #2 Memcached::getMulti() example for Memcached v1 and v2

代码语言:javascript
复制
<?php
//?Valid?for?v1?and?v2?of?the?extension

$m?=?new?Memcached();
$m->addServer('localhost',?11211);

$items?=?array(
????'key1'?=>?'value1',
????'key2'?=>?'value2',
????'key3'?=>?'value3'
);
$m->setMulti($items);
$result?=?$m->getMulti(array('key1',?'key3',?'badkey'),?$cas);
var_dump($result,?$cas);
?>

The above example will output something similar to:

代码语言:javascript
复制
array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key3"]=>
  string(6) "value3"
}
array(2) {
  ["key1"]=>
  float(2360)
  ["key3"]=>
  float(2362)
}

Example #3 Memcached::GET_PRESERVE_ORDER example for Memcached v3

代码语言:javascript
复制
<?php
//?Valid?for?v3?of?the?extension

$m?=?new?Memcached();
$m->addServer('localhost',?11211);

$data?=?array(
????'foo'?=>?'foo-data',
????'bar'?=>?'bar-data',
????'baz'?=>?'baz-data',
????'lol'?=>?'lol-data',
????'kek'?=>?'kek-data',
);

$m->setMulti($data,?3600);

$keys?=?array_keys($data);
$keys[]?=?'zoo';
$got?=?$m->getMulti($keys,?Memcached::GET_PRESERVE_ORDER);

foreach?($got?as?$k?=>?$v)?{
????echo?"$k?$v\n";
}
?>

The above example will output something similar to:

代码语言:javascript
复制
foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo 

Example #4 Memcached::GET_PRESERVE_ORDER example for Memcached v1 and v2

代码语言:javascript
复制
<?php
//?Valid?for?v1?and?v2?of?the?extension

$m?=?new?Memcached();
$m->addServer('localhost',?11211);

$data?=?array(
????'foo'?=>?'foo-data',
????'bar'?=>?'bar-data',
????'baz'?=>?'baz-data',
????'lol'?=>?'lol-data',
????'kek'?=>?'kek-data',
);

$m->setMulti($data,?3600);

$null?=?null;
$keys?=?array_keys($data);
$keys[]?=?'zoo';
$got?=?$m->getMulti($keys,?$null,?Memcached::GET_PRESERVE_ORDER);

foreach?($got?as?$k?=>?$v)?{
????echo?"$k?$v\n";
}
?>

The above example will output something similar to:

代码语言:javascript
复制
foo foo-data
bar bar-data
baz baz-data
lol lol-data
kek kek-data
zoo 

Changelog

Version

Description

3.0.0

The &cas_tokens parameter was removed. The Memcached::GET_EXTENDED was added and when passed as a flag it ensures the CAS tokens to be fetched.

See Also

  • Memcached::getMultiByKey() - Retrieve multiple items from a specific server
  • Memcached::get() - Retrieve an item
  • Memcached::getDelayed() - Request multiple items

← Memcached::getDelayedByKey

Memcached::getMultiByKey →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com