我遇到了 Memcache 无法设置密钥的问题。基本上我有我的测试页面:
$db=new db;
$my_test_cache=$db->query("SELECT `txt` FROM `lang` WHERE `pg`='front' LIMIT 2", 10);
还有一个用于缓存的 db 类:
class db {
public function query($query, $ttl=30, $cache=true, $compr=false) {
global $memcache;
if ($cache==true) {
$res=$memcache->get(hash('md4', $query));
if ($res!=false) {
echo 'this is cached';
return $res;
}
else {
$res=mysql_query($query);
$memcache->set(hash('md4', $query), $res, $compr, $ttl);
echo 'this is not cached<hr>
Query: ',$query,'<br/>
Md4: ',hash('md4',$query),'<br/>';
var_dump($res);
return $res;
}
}
else return mysql_query($query);
unset($res, $query);
}
}
可悲的是,即使所有资源似乎都正常工作,这也不会设置任何要缓存的数据。又名我的页面输出:
- 这不是缓存查询:SELECT * FROM
lang
WHEREpg
='front' LIMIT 2 - Md4: 34aa4e46a15413f5091dac79c9e86306
- 类型的资源(7)(mysql结果)
有人会这么好心地告诉我在这里做什么吗?