关于spCache清楚缓存的问题

#1 torrey

我在新浪的SAE环境中有一个应用,最近在尝试做些优化,把SP的spCache用上去。发现一个问题,过来请教下Jack老大...
关联代码如下:
$docObj = spClass("M_cnDocumentInfo");
$docObj->spCache(-1)->findAll();
$this->doculist = $docObj->spCache(3600)->findAll(array('category' => $cid, 'display' => 1), 'recommend desc,lcd desc', 'distinct id,title', '15');
echo $docObj->dumpSql();

我按照文档里面说的(http://www.speedphp.com/spcache-php-cached-by-functions.html),先试着清空与$docObj这个相关的所有缓存,然后再去查,然后再看有没有执行sql查询。这个只是测试,按道理是不是应该每次都输出sql语句?因为我在查询之前都标记缓存过期了。但事实上sql语句并不会输出来。
输出sql语句只有一种情况,就是我在SAE的应用后台,把那个应用的所有MC全部清空,才会输出这个sql语句。

特来请教,$docObj->spCache(-1)->findAll();这种方法清除缓存是不是不行呢? 另外看到有个clear和clear_all方法我没懂,能不能给个例子?
谢谢!!

2012-03-09 22:43:51

#2 jake

测试的确是清理不了缓存,估计和SAE环境有关。

这块建议你直接用spAccess缓存数据库返回结果的方式来优化,spCache会尝试再修正这个问题。

2012-03-10 09:25:21

#3 torrey

哈,回复真快! 感谢感谢!:)

2012-03-10 09:56:03