CakePHP:缓存不起作用

CakePHP:缓存不起作用,cakephp,caching,Cakephp,Caching,我有以下问题:我的cakephp应用程序没有正确处理缓存。正如google中的每个结果所建议的那样,我在模型中创建了一个手动删除缓存的函数: public function afterSave($created) { Cache::clear(); clearCache(); } 不幸的是,这毫无用处。没有删除任何内容,我仍然有问题 如果我没有正确解释自己,我将举一个例子说明发生了什么: 我使用浏览器进入一个页面,该页面显示数据库中最后5条记录的列表。然后我去添加另一个记录。我

我有以下问题:我的cakephp应用程序没有正确处理缓存。正如google中的每个结果所建议的那样,我在模型中创建了一个手动删除缓存的函数:

public function afterSave($created) {
    Cache::clear();
    clearCache();
}
不幸的是,这毫无用处。没有删除任何内容,我仍然有问题

如果我没有正确解释自己,我将举一个例子说明发生了什么:

我使用浏览器进入一个页面,该页面显示数据库中最后5条记录的列表。然后我去添加另一个记录。我回到显示最后5个的页面,信息没有更新。它使用缓存并返回过时的信息。如果我按F5,他会重新加载trully页面,我会看到trully最后5条记录


就这样,我不知道该怎么办。整个应用程序都像垃圾一样工作,因为你做了一些事情,除非你用F5刷新页面,否则它永远不会出现,这当然是用户不知道的,导致他们认为“没有添加任何内容”,而实际上是这样的。

我这样做是为了解决问题:在控制器中,在beforefilter函数中,我进行了检查,如果动作是我禁用缓存的东西

您选择的操作没有浏览器缓存

function beforeFilter(){
    if ($this->action == 'youraction'){
       $this->disableCache();
    }
}

我这样做是为了解决这个问题:在控制器中,在beforefilter函数中,我做了一个检查,如果该操作是我禁用缓存的东西

您选择的操作没有浏览器缓存

function beforeFilter(){
    if ($this->action == 'youraction'){
       $this->disableCache();
    }
}
Cache::clear()
将只清除已过期的条目

请尝试
Cache::clear(FALSE)
。如果您使用的是CakePHP 2.x,则可以正常工作。

Cache::clear()
将只清除过期的条目


请尝试
Cache::clear(FALSE)
。如果您使用的是CakePHP 2.x,那么它就可以工作。

使用缓存需要很多思考,在哪里使用,在哪里不使用。如果你的更新很频繁,不要在那里使用缓存

我们在数据很少改变的地方使用缓存,这是一个双赢的局面

Cache::clear($check,$config='default')

销毁缓存配置的所有缓存值


使用缓存需要很多思考,在哪里使用,在哪里不使用。如果你的更新很频繁,不要在那里使用缓存

我们在数据很少改变的地方使用缓存,这是一个双赢的局面

Cache::clear($check,$config='default')

销毁缓存配置的所有缓存值


保存后是否检查了相应缓存文件的修改日期,以查看是否已更新??按F5键后,我再也没碰过缓存中的任何东西。这是一种默认的处理方式。我这样做是为了解决这个问题:在控制器中,在beforefilter函数中,我做了一个检查,如果'action'=='which'-->disableCache它完成了任务。我现在选择的动作没有缓存,一切正常。嗯。。。这种行为听起来很罕见。你应该把它作为答案发布并接受它。我不能回答我的问题,因为我基本上是一个noob(网站上说)。我这样做是为了解决这个问题:在控制器中,在beforefilter函数中,我做了一个检查,如果“action”==“whatever”-->disableCache它完成了任务。您选择的操作没有浏览器缓存。函数beforeFilter(){if($this->action=='youraction'){$this->disableCache();}//您的操作是您不想要/不需要浏览器缓存的操作。}保存后是否检查了相应缓存文件的修改日期,以查看其是否已更新??按F5键后,我再也没碰过缓存中的任何东西。这是一种默认的处理方式。我这样做是为了解决这个问题:在控制器中,在beforefilter函数中,我做了一个检查,如果'action'=='which'-->disableCache它完成了任务。我现在选择的动作没有缓存,一切正常。嗯。。。这种行为听起来很罕见。你应该把它作为答案发布并接受它。我不能回答我的问题,因为我基本上是一个noob(网站上说)。我这样做是为了解决这个问题:在控制器中,在beforefilter函数中,我做了一个检查,如果“action”==“whatever”-->disableCache它完成了任务。您选择的操作没有浏览器缓存。函数beforeFilter(){if($this->action=='youraction'){$this->disableCache();}//您的操作是您不想要/不需要浏览器缓存的操作}