1

使用开发模块,我可以看到很多对 cache_get() 和 cache_set() 的调用。缓存值多久需要刷新?缓存每隔几分钟就会失效一次吗?

4

1 回答 1

1

使用cache_set的模块在调用中设置过期时间。有些事情有明确的持续时间,有些事情有永久或半永久的生命周期,视情况而定。

当您通过管理界面(或 drush)或通过使用drupal_flush_all_cachescache_clear_all调用该方法时,缓存将被明确清除。

最近,我每晚都在使用 hook_cron 来清除某些缓存表。

编辑回答评论:

要查看哪个缓存,我通常将其放在某个单独的脚本中:

require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
header("Content-Type: text/plain; encoding=utf-8");
$user = user_load(1);
print "Modules implementing hook_cron:\n" . implode("\n", module_implements('cron'));

要查看到期时间,请检查数据库中的各个cache表并查看expire列。模块可以为每个单独的调用设置过期时间cache_set,因此它可以通过条目来改变条目。

于 2011-01-19T14:19:27.817 回答