(PECL memcached >= 0.1.0)

Memcached::getRecupera um item


public Memcached::get(string $key, ?callable $cache_cb = null, int $get_flags = 0): mixed

Memcached::get() retorna o item que foi armazenado anteriormente na key. Se o item for encontrado e o get_flags for fornecido como Memcached::GET_EXTENDED, ele também retornará o valor do token CAS para o item. Consulte Memcached::cas() para saber como usar tokens CAS. O callback de cache de leitura pode ser especificado por meio do parâmetro cache_cb.



A key do item a ser recuperado.


Callback de cache de leitura ou null.


Flags para controlar o resultado retornado. Quando Memcached::GET_EXTENDED for fornecido, a função também retornará o token CAS.

Valor Retornado

Retorna o valor armazenado no cache ou false caso contrário. Se o parâmetro get_flags for definido como Memcached::GET_EXTENDED, um array contendo o valor e o token CAS será retornado em vez de apenas o valor. O Memcached::getResultCode() retornará Memcached::RES_NOTFOUND se a key não existir.

Registro de Alterações

Versão Descrição
PECL memcached 3.0.0 O parâmetro &cas_token foi removido. Em vez disso, as get_flags foram adicionadas e, quando receber o valor de Memcached::GET_EXTENDED, garantirá que o token CAS seja buscado.


Exemplo #1 Memcached::get() exemplo #1

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

$m->set('foo', 100);

O exemplo acima produzirá:


Exemplo #2 Memcached::get() exemplo #2

= 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 */
/* ... */

Veja Também

add a note

User Contributed Notes 3 notes

letynsoft at gmail dot com
7 years ago
As of some version of php7 (i was not able to determine which exactly).
The $cas_token is no longer valid argument. It has been removed in favor of flags argument, as it appears to be causing issues when subclassing the Memcached class.

See for more details.

Basically you need to
function memcacheGet($key, $cb = null, &$cas = null) {
$m = memcacheGetObject();
defined('Memcached::GET_EXTENDED')) {
//Incompatible change in php7, took me 2 hours to figure this out, grrr
$_o = $m->get($key, $cb, Memcached::GET_EXTENDED);
$o = $_o['value'];
$cas = $_o['cas'];
} else {
$o = $m->get($key, $cb, $cas);
miha at hribar dot info
15 years ago
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.

= 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 :)
13 years ago
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 :)
To Top