Memcached
在线手册:中文  英文

Memcached::get

(PECL memcached >= 0.1.0)

Memcached::get检索一个元素

说明

public mixed Memcached::get ( string $key [, callback $cache_cb [, float &$cas_token ]] )

Memcached::get()返回之前存储在key下的元素。如果元素被找到,并且提供 了cas_token参数, 这个参数(译注:这个参数在函数定义中是引用参数,用来传出元素的版本标记,原理 可以查阅乐观锁资料)将会包含该元素的CAS标记值。关于CAS标记值的使用,请查看 Memcached::cas()的说明。 另外,可以通过cache_cb参数设置Read-through caching callback

参数

key

要检索的元素的key。

cache_cb

通读缓存回掉函数或NULL.

cas_token

检索的元素的CAS标记值。

返回值

返回存储在服务端的元素的值或者在其他情况下返回FALSE。 如果key不存在, Memcached::getResultCode()返回Memcached::RES_NOTFOUND

范例

Example #1 Memcached::get() 示例 #1

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

$m->set('foo'100);
var_dump($m->get('foo'));
?>

以上例程会输出:

int(100)

Example #2 Memcached::get() 示例 #2

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

if (!(
$ip $m->get('ip_block'))) {
    if (
$m->getResultCode() == Memcached::RES_NOTFOUND) {
        
$ip = array();
        
$m->set('ip_block'$ip);
    } else {
        
/* log error */
        /* ...       */
    
}
}
?>

参见


Memcached
在线手册:中文  英文

用户评论:

denis_truffaut[A-T]hotmail[D-O-T]com (2011-01-17 06:01:36)

Note that this function can return NULL as FALSE, so don't make checks with === FALSE as with the old Memcache class, because it won't work. :O
Use the not (!) operator and check the result code with getResultCode() as mentioned in the documentation :)

miha at hribar dot info (2009-07-17 01:31:34)

This method also returns false in case you set the value to false, so in order to have a proper fault mechanism in place you need to check the result code to be certain that a key really does not exist in memcached.

<?php
$Memcached 
= new Memcached();
$Memcached->addServer('localhost'11211);
$Memcached->set('key'false);
var_dump($Memcached->get('key'));       // boolean false
var_dump($Memcached->getResultCode());  // int 0 which is Memcached::RES_SUCCESS
?>

Or just make sure the values are not false :)

易百教程