本文整理汇总了PHP中Memcached::setMultiByKey方法的典型用法代码示例。如果您正苦于以下问题:PHP Memcached::setMultiByKey方法的具体用法?PHP Memcached::setMultiByKey怎么用?PHP Memcached::setMultiByKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Memcached
的用法示例。
在下文中一共展示了Memcached::setMultiByKey方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setMulti
/**
* Set multiple values to cache at once.
*
* By sending an array of $items to this function, all values are saved at once to
* memcached, reducing the need for multiple requests to memcached. The $items array
* keys and values are what are stored to memcached. The keys in the $items array
* are merged with the $groups array/string value via buildKeys to determine the
* final key for the object.
*
* @link http://www.php.net/manual/en/memcached.setmulti.php
*
* @param array $items An array of key/value pairs to store on the server.
* @param string|array $groups Group(s) to merge with key(s) in $items.
* @param int $expiration The expiration time, defaults to 0.
* @param string $server_key The key identifying the server to store the value on.
* @param bool $byKey True to store in internal cache by key; false to not store by key
* @return bool Returns TRUE on success or FALSE on failure.
*/
public function setMulti($items, $groups = 'default', $expiration = 0, $server_key = '', $byKey = false)
{
// Build final keys and replace $items keys with the new keys
$derived_keys = $this->buildKeys(array_keys($items), $groups);
$expiration = $this->sanitize_expiration($expiration);
$derived_items = array_combine($derived_keys, $items);
$group_offset = empty($this->cache_key_salt) ? 1 : 2;
// Do not add to memcached if in no_mc_groups
foreach ($derived_items as $derived_key => $value) {
// Get the individual item's group
$key_pieces = explode(':', $derived_key);
// If group is a non-Memcached group, save to runtime cache, not Memcached
if (in_array($key_pieces[$group_offset], $this->no_mc_groups)) {
$this->add_to_internal_cache($derived_key, $value);
unset($derived_items[$derived_key]);
}
}
// Save to memcached
if (false !== $byKey) {
$result = $this->mc->setMultiByKey($server_key, $derived_items, $expiration);
} else {
$result = $this->mc->setMulti($derived_items, $expiration);
}
// Store in runtime cache if add was successful
if (Memcached::RES_SUCCESS === $this->getResultCode()) {
$this->cache = array_merge($this->cache, $derived_items);
}
return $result;
}
示例2: array
}
return true;
}
$data = array('foo' => 'foo-data', 'bar' => 'bar-data', 'baz' => 'baz-data', 'lol' => 'lol-data', 'kek' => 'kek-data');
$keys = array_keys($data);
$null = null;
$m->setMulti($data, 3600);
/* Check that all keys were stored */
var_dump(has_all_keys($keys, $m->getMulti($keys)));
/* Check that all keys get deleted */
$deleted = $m->deleteMulti($keys);
var_dump(has_all_keys($keys, $deleted, true));
/* Try to get the deleted keys, should give empty array */
var_dump($m->getMulti($keys));
/* ---- same tests for byKey variants ---- */
$m->setMultiByKey("hi", $data, 3600);
var_dump(has_all_keys($keys, $m->getMultiByKey('hi', $keys)));
/* Check that all keys get deleted */
$deleted = $m->deleteMultiByKey('hi', $keys);
var_dump(has_all_keys($keys, $deleted, true));
/* Try to get the deleted keys, should give empty array */
var_dump($m->getMultiByKey('hi', $keys));
/* Test deleting non-existent keys */
$keys = array();
$keys[] = "nothere";
$keys[] = "nothere2";
$retval = $m->deleteMulti($keys);
foreach ($retval as $key => $value) {
if ($value === Memcached::RES_NOTFOUND) {
echo "{$key} NOT FOUND\n";
}
示例3: setMultiByKey
/**
* @inheritdoc
*/
public function setMultiByKey($server_key, array $items, $expiration = null)
{
$items = $this->prefixArrayKeys($items);
return parent::setMultiByKey($server_key, $items, $expiration);
}