Answers:
据我所知,没有任何模块需要缓存。如果您不想将其关闭,则可以在本Site Settings > Performance
节中将其清除。
即使禁用了缓存,在清除缓存之前,Drupal也不会识别添加到主题的新文件。
Drupal.org上有一些有关清除缓存的不同方法的信息
如果您使用的是Drupal 6,则如果您出于某些原因不希望安装较重的模块(例如Devel),则可以使用“ Cache Disable ”模块来完成该任务。
这是一个老问题,但我只是看到它与我正在进行的搜索相关而弹出。
几乎所有的缓存清除方法最终都会最终调用drupal_flush_all_caches。您可以在自己的代码中在各种情况下调用此方法。
有时与Drupal一起使用的缓存数量可能会变得疯狂。
这是禁用和清除Drupal缓存以及与之关联的常见方法。
禁用缓存:
请注意,您不能禁用所有缓存,因为Drupal需要其中的一些。
这是一种通过在设置文件中添加以下几行来禁用缓存的方法:
// Disable caches
$conf['cache'] = 0;
$conf['block_cache'] = 0;
$conf['views_skip_cache'] = TRUE;
$conf['page_compression'] = 0;
$conf['preprocess_css'] = 0;
$conf['preprocess_js'] = 0;
如果禁用所有缓存,则您的网站将非常慢,因此不建议在其他任何免除开发计算机的环境中使用它。
清除缓存
XCache
清除XCache缓存(如果使用):
drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();"
或者,如果上述方法不起作用,请在管理面板(/ xcache-admin)中清除XCache中的缓存。
电子加速器
drush eval "function_exists('accelerator_reset') && accelerator_reset();"
装甲运兵车
drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"
OP缓存
如果与PHP> = 5.5一起使用,则清除PHP OPCache
drush eval "function_exists('opcache_reset') && opcache_reset();"
注意:按照以下说明,上面的CLI命令不会清除Apache的缓存:Opcache-PHP5.4及更低版本中的Clean缓存。
记忆快取
如果您使用的是memcached,则应使用以下方法之一清除,重新启动或杀死您的memcached:
作为用户(其中之一):
echo flush_all > /dev/tcp/127.0.0.1/11211
echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server
作为根(其中之一):
/etc/init.d/rc.d/memcached restart
service memcached restart
killall memcached # It's automatically restarted on OSX.
还建议您在设置文件中的以下行中安装memcached模块:
$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';
因此,将在标准Drupal清除缓存中清除Memcached缓存。
漆
如果使用的是Varnish,建议安装Varnish模块并在设置文件中设置以下行:
$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';
因此,Varnish缓存将在Drupal清除缓存中一起清除。
或者,您可以使用curl手动清除页面:
curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123
阅读更多:如何清除清漆缓存?
Drupal
通过清除清除Drupal缓存:
drush cc all
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
drush eval 'menu_rebuild();'
您可以在/ admin / config / development / performance上执行相同的操作,因为有时以比从CLI更好的方式清除UI缓存。
这是用于清除所有缓存的有用的shell脚本:
#!/bin/bash
set -o xtrace
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
echo 'flush_all' | nc localhost 11211 # Flush Contents Of a Memcached Server
drush eval "function_exists('opcache_reset') && opcache_reset(); function_exists('xcache_clear_cache') && xcache_clear_cache();"
drush eval 'menu_rebuild();'
set -o xtrace -
echo done.
我们可以使用以下方法之一清除drupal中的缓存
1.)我们可以只访问URL your_domain / admin / config / development / performance并单击清除缓存按钮。
2.)如果我们已经安装了drush模块,我们可以通过drush cc all命令清除缓存 。
3.)如果我们具有数据库访问权限,则可以使用以下命令清除缓存(强烈建议不要直接访问生产数据库;如果您的站点“处于活动状态”,请使用一种替代方法)
TRUNCATE TABLE缓存;
TRUNCATE TABLE cache_block;
TRUNCATE TABLE cache_bootstrap;
TRUNCATE TABLE cache_field;
TRUNCATE TABLE cache_filter;
TRUNCATE TABLE cache_form; //注意与其他cache_ *表的重要区别-请参阅下面的更多信息
TRUNCATE TABLE cache_image;
TRUNCATE TABLE cache_menu;
TRUNCATE TABLE cache_page;
TRUNCATE TABLE cache_path;
TRUNCATE TABLE cache_token;
TRUNCATE TABLE cache_update;
4.)我们还可以在模块文件db_query(“ DELETE FROM {cache};”);中编写查询。
5.)我们可以使用drupal api清除缓存,例如cache_clear_all()
6.)我们还可以通过devel模块安装devel模块来清除缓存,并启用“ Developer / Development Block”,从而清除缓存
有关cache_form的更多信息,其目的与其他cache_表不同:
drupal_flush_all_caches()的核心api文档说:“不清除cache_form-正在进行的表单提交可能会中断。” 此问题仅适用于拥有活跃用户的网站,不适用于开发版本。
本文中介绍的其他清除缓存的手动方法不会影响cache_form
如果您需要在生产站点上缩小cache_form的大小,请参见Cache Form表的大小巨大