memcache 無法get值

町風
使用Memcached,get值都是空值,沒錯誤訊息,不知道如何檢查起?
		$m = new Memcached();
		$m->addServer('localhost', 11211);
		$cacheName = 'cache01';
		$data = array('name' => 'test');
		$period = '600';
		$m->set($cacheName, $data, $period);

		//取出
		$m = new Memcached();
		$m->addServer('localhost', 11211);
		$cacheName = 'cache01';
		$data = $m->get($cacheName);
		print_r($data);

		//結果
		空值

浩瀚星空
參考了一下官方的寫法。
他在直接取值時多了一個 usleep(100);
且還做了一個值寫入的判斷。

你可以先用php官方的寫法先測試一下看看。

<?php
$memcache = new Memcache;
$memcacheD = new Memcached;
$memcache->addServer($host);
$memcacheD->addServers($servers);

$checks = array(
    123,
    4542.32,
    'a string',
    true,
    array(123, 'string'),
    (object)array('key1' => 'value1'),
);
foreach ($checks as $i => $value) {
    print "Checking WRITE with Memcache\n";
    $key = 'cachetest' . $i;
    $memcache->set($key, $value);
    usleep(100);
    $val = $memcache->get($key);
    $valD = $memcacheD->get($key);
    if ($val !== $valD) {
        print "Not compatible!";
        var_dump(compact('val', 'valD'));
    }

    print "Checking WRITE with MemcacheD\n";
    $key = 'cachetest' . $i;
    $memcacheD->set($key, $value);
    usleep(100);
    $val = $memcache->get($key);
    $valD = $memcacheD->get($key);
    if ($val !== $valD) {
        print "Not compatible!";
        var_dump(compact('val', 'valD'));
    }
}

回到頂部