从缓存中清除单个网址


9

使用Drupal的标准缓存系统,是否可以在不清除整个缓存的情况下清除节点或url的缓存(这会减慢整个站点的速度)?

Answers:


6

模块的“ 缓存操作”为您的缓存清除提供了非常精细的控制。

不幸的是,它能否解决您的确切问题取决于此特定url的构建方式。如果它不能完全满足您的要求,那么它的代码库仍然是构建更精确的所需内容的绝佳起点。


6

是的,您也可以通过编程方式进行。

在此示例中,我们清除了首页缓存:

$url = url('<front>',  array('absolute' => TRUE));

cache_clear_all($url, 'cache_page');

Drupal将路径作为CID存储在表中,在上面的示例中,我们将首页URL作为CID作为函数中的第一个参数提供,如果您定义了CID,则必须在函数中定义第二个参数$ bin,即例如您要从哪个表中删除缓存。由于我们必须删除单个页面,因此它存在于cache_page中,该页面保存页面的缓存。


3

有一个用于该模块的模块:刷新页面缓存。这是关于它的报价(来自模块的项目页面):

当需要冲洗时可以减轻痛苦。Drupal的缓存。

在大型站点上刷新Drupal的缓存可能会感觉就像您在等待在肯尼迪国际机场的停机坪上起飞一样。延迟来自以下事实:当您清除Drupal的缓存时,它将清除所有内容。大多数时候,您只想刷新页面上特定对象的缓存。

“刷新页面缓存”模块通过仅刷新单个页面的缓存对象来解决此问题。此外,您可以定义要在特定页面上清除的自定义对象和缓存表。



0

到这里参加聚会有点晚了,但是Cache Expire模块可能正是您想要的。它为您提供了对如何将缓存用于多种实体类型的真正细粒度控制(如果您使用模块的2.x版本)。

无论使用哪种版本的模块,您都可以访问“从页面缓存中清除URL”规则操作。因此,您可以指定触发规则所需的任何事件和条件,然后将删除您指定的URL。希望这可以帮助。


-1

只需从http://drupal.org/project/drush下载drush模块即可完成缓存清除工作

terminal->your drupal directory

写命令drush cc

它会带你回来

[0]:取消
[1]:全部
[2]:匆忙
[3]:主题注册[4]:菜单
[5]:css-js
[6]:阻止
[7]:模块列表
[8]:主题列表
[9]:注册表
[10]:观看次数

因此,您可以选择要清除的任何内容。

如果您想从drupal网站上清除缓存,则可以安装并启用模块http://drupal.org/project/admin_menu。 它在drupal文件栏上提供了一个主页图标,并会为您提供一个菜单列表,您可以在其中找到菜单用于缓存清除的东西。


1
他在询问先进的自定义缓存机制
Codium

drush cc views例如,您可以在视图可以是该列表中的任何类型的地方进行操作。
伊兹密尔·拉米雷斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.