缓存组件配置在configmain.php文件,简单配置下文件缓存
'components'=>array( 'cache' => array( 'class' => 'system.caching.CFileCache' ), ),
文件缓存默认的缓存路径是runtimecache目录下
class标识需要使用的缓存媒介,支持下列类型等:
CMemCache: 使用 PHP memcache 扩展
CApcCache: 使用 PHP APC 扩展
CDbCache: 使用一张数据库表来存储缓存数据
CFileCache: 使用文件来存储缓存数据. 特别适用于大块数据(例如页面)
操作语法:
1 设置缓存:Yii::app()->cache->set(缓存名, 缓存值, 过期时间); 2 获取缓存:Yii::app()->cache->get(缓存名); 3 删除单个缓存:Yii::app()->cache->delete(缓存名); 4 清空缓存:Yii::app()->cache->flush();
多条件查询缓存示例demo:
1 public function actionTest(){ 2 $where = 20190328; 3 //$where = 20190401;//示例查询条件 4 $cacheName = 'dayData';//缓存名称 5 $dayData = [];//缓存值 6 $key = $where;//缓存key生成 7 8 $dayData = Yii::app()->cache->get($cacheName); 9 if (!empty($dayData['date'])) { 10 if ($dayData['date'] != $where) {//缓存与查询条件判断 11 Yii::app()->cache->delete($cacheName); 12 } 13 } else {//设置缓存的日期 14 $dayData['date'] = $where; 15 Yii::app()->cache->set($cacheName, $dayData, 60 * 60); 16 } 17 18 $dayData = Yii::app()->cache->get($cacheName);//获取最新缓存 19 if (empty($dayData['test'][$key])) {//判断缓存与否 20 $dayData['test'][$key] = '测试数据' . $where; 21 Yii::app()->cache->set($cacheName, $dayData, 60 * 60); 22 } 23 var_dump($dayData['test'][$key]); 24 }