求助:数据缓存 [ 新手入门 ]
数据缓存不起作用,貌似还没报错,查看日志,没看出啥问题来。 大概的代码如下:
public function actionShowStorage()
{
$page = isset ( $_REQUEST ['page'] ) ? intval ( $_REQUEST ['page'] ) : 1;
$per_page = Main::PRODUCT_SHOW_PER_PAGE;
$dbCriteria = new CDbCriteria (array());//里面是一堆条件,省略
$pages = new CPagination ( ProductShowModel::model ()->count ( $dbCriteria ) );
$pages->pageSize = $per_page;
//下面不用applyLimit是因为瀑布流的原因
$dbCriteria->limit = $per_page;
$dbCriteria->offset = ($page-1) * $per_page;
$products = null ;
if(!$this->module->cacheDisabled) {
$products = Yii::app()->cache->get('showStorage_'.$page);
}
if (null == $products){
$products = ProductShowModel::model()->findAll($dbCriteria);
if(!$this->module->cacheDisabled) {
$dbDependency = new BBCDBCacheDependency('SELECT MAX(last_modified) FROM product LIMIT 1');
$dbDependency->evaluateDependency();
$cached = Yii::app()->cache->set('showStorage_'.$page, $products, BaobeiModule::CACHE_PRODUCT_EXPIRE, $dbDependency);
if(!$cached) {
Yii::log('Error while caching showStorage_'. $page, 'warning', 'system.web.ShowController');
}
}
}
$this->render ( 'showStorage', array ('products' => $products, 'pages' => $pages ) );
}
反正不报错,日志里面也没看出啥问题,但是缓存就是没加进去,我在 Yii::app()->cache->get('showStorage_'.$page);
打印出来的是null
配置文件里面的cache配置是
'cache'=>array(
'class'=>'system.caching.CFileCache',
'directoryLevel'=>1,
'cacheFileSuffix'=>'BBC',
),
后来我又加了
'DBcache'=>array(
'class'=>'system.caching.CDbCache',
),
然后用相对应的Yii::app()->DBcache
,还是不行
有谁知道为啥的?我这个用法对吗?找不到相关的资料哎 求大大贴自己的代码
共 3 条回复
zcyxm
注册时间:2012-05-11
最后登录:2021-04-11
在线时长:152小时12分
最后登录:2021-04-11
在线时长:152小时12分
- 粉丝18
- 金钱37226
- 威望60
- 积分39346