yii删除所有查询缓存

 gjagtm2502855737 发布于 2023-01-11 17:57

我在php 5.2.4的centos 5上使用Yii 1.14.我正在做查询缓存之类的Projects::model()->cache(timeout,dependancy)->findAll(array()).现在我有很多这些.有没有办法清除此应用程序的所有查询缓存.我似乎无法找到任何将这些缓存查询添加到组,然后从缓存中删除该组的信息.问题是我有很多使用memcache的应用程序,我不希望每次更新前都刷新它.我只想清除与此应用程序相关的所有缓存.

更新 我想在更新的开始和结束时刷新应用缓存.我没有cache在该位置开头的文件

 ll paradox/protected/runtime/
total 164
-rw-r--r-- 1 apache apache 155571 Jun  3 15:53 application.log
drwxr-xr-x 2 apache apache   4096 Jun  4 11:53 gii-1.1.12
drwxr-xr-x 2 apache apache   4096 Jun  4 11:53 gii-1.1.14

查看日志,Yii::app()->cache->flush确实如下

<28 new auto-negotiating client connection
28: Client using the ascii protocol
<28 get ns9e5np1ss92i7mqkjues577o1
>28 sending key ns9e5np1ss92i7mqkjues577o1
>28 END
<39 version
>39 VERSION 1.4.5
<39 flush_all
>39 OK

看起来它清除了所有内存缓存?

1 个回答
  • 要删除所有缓存数据,请使用以下flush()方法:

    Yii::app()->cache->flush();
    

    要删除所有过期的缓存数据,请使用以下gc()方法:

    Yii::app()->cache->gc();
    

    其他方式:

    //if you use CFileCache
    $cache=new CFileCache();
    $cache->flush();
    //if you use CMemCache
    $cache2=new CMemCache();
    $cache2->flush();
    

    要查找所有相关方法,请查看Yii官方文档:

    高速缓存

    CFileCache

    CMemCache

    CApcCache

    请注意,flush方法仅刷新当前运行的应用程序缓存值.

    2023-01-11 17:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有