我可以将缓存关闭是否有开发部署? -- caching 领域 drupal 相关 的问题

Can I turn cache off for the development deployment?


23
vote

问题

中文

在开发平台上缓存可以是一种痛苦。我可以把它关掉吗?它会影响需要它的任何模块吗?

英文原文

On development platform caching can be a pain. Can I turn it off? Will it affect any of the modules that require it?

  

回答列表

20
 
vote
vote
最佳答案
 

安装 devel module 为管理员添加缓存清除选项。 您将找到一个devel block添加到一个区域以进行快速缓存清除,或者安装管理员菜单并得到快速左上角的菜单用于清除Drupal中的各种缓存。

如果您喜欢命令行安装 drush 并使用 drush cc all 命令清除您的网站缓存。注意当前博彩CC如果适用于您的设置,则不会清除纸色缓存。

 

Install the devel module which adds a cache clear option for administrators. You'll find a devel block to add to a region for quick cache clearing, or if you install the admin menu and get a quick menu in the top left for clearing various caches in Drupal.

If you like the command line install drush and use the drush cc all command to clear your sites caches. Beware that currently drush cc doesn't clear the Varnish cache if that's applicable to your setup.

 
 
9
 
vote

如果您使用drupal 7,您可以始终将缓存设置为使用DrupalfakeCache,这通常仅在安装过程中使用。要设置,请在Settings.php中删除以下代码片段:

  include_once(DRUPAL_ROOT . '/includes/cache.inc'); include_once(DRUPAL_ROOT . '/includes/cache-install.inc'); $conf['cache_default_class'] = 'DrupalFakeCache';   
 

If you are using Drupal 7 you can always set your caching to using DrupalFakeCache, which is normally only used during the installation process. To set that, drop the following code snippet in your settings.php:

include_once(DRUPAL_ROOT . '/includes/cache.inc'); include_once(DRUPAL_ROOT . '/includes/cache-install.inc'); $conf['cache_default_class'] = 'DrupalFakeCache'; 
 
 
4
 
vote

'绩效'页面管理>站点配置将允许您启用/禁用所选站点元素的缓存。主题模板通常更持久地缓存,但可以在同一"性能" 页面中刷新。

'"管理" 菜单'模块将在工具栏中提供快捷方式,如果需要更定期进行缓存刷新 - 在主题DEV期间,我发现自己不断冲洗。

 

'Performance' page in administration > site configuration will allow you to enable / disable caching of selected site elements. Theme templates are typically cached more persistently but can be flushed within the same 'performance' page.

'Administration menu' module will provide a shortcut in a toolbar if cache flushes need to be done more regularly - during theme dev I find myself constantly flushing.

 
 
4
 
vote

据我所知,没有任何模块要求缓存。如果您不想关闭它,可以在 Site Settings > Performance 部分中清除它。

即使缓存禁用Drupal也不会识别添加到主题的新文件,直到清除缓存。

有一些关于在 drupal.org

上清除缓存的一些信息
 

As far as I know there aren't any modules that require caching. If you don't want to turn it off you can clear it in the Site Settings > Performance section.

Even with caching disabled Drupal won't recognise new files added to themes until you clear the cache.

There's a some information on different ways to clear the cache over at Drupal.org

 
 
4
 
vote

除了史蒂夫H提到,使用 devel

  • 在每个页面加载时重建主题缓存(如果您是在模板文件上工作的主题),则是有用的)
  • 将轻松访问空高速缓存功能并重新安装函数的块。
使用Devel模块和缓存关闭在性能下,您将在日常开发中运行的唯一其他主要缓存是菜单路由器,可以使用devel或管理员菜单重建。史蒂夫提到。

 

In addition to the methods Steve H mentioned, using the Devel module opens up a few more options, including:

  • Rebuilding the theme cache on every page load (useful if you're a themer working on template files)
  • A block that'll provide easy access to the empty cache function and reinstall function.

With the Devel module and caching turned off under Performance, the only other major cache you'll run into in routine development is the menu router, which can be rebuilt either using Devel or Admin Menu as Steve mentioned.

 
 
4
 
vote

要注意的一个重要事项是,如果您有很多样式表(来自主题或模块),则关闭CSS文件优化有可能在IE中打破您的网站。

虽然实际上没有缓存,它在相同的设置页面上,通常与缓存一起使用。

"刷新所有缓存" 链接在管理员菜单模块中是奇妙的,顺便说一句。

 

One important thing to note is that if you have a lot of stylesheets (either from your theme or from modules), then turning off CSS file optimizing has the potential to break your site in IE.

While not actually caching, it's on the same settings page and is often used with caching.

The "Flush all caches" link in the admin menu module is fantastic, by the way.

 
 
 
 
3
 
vote

如果您使用的是drupal 6," cache禁用" 模块可以为该任务方便如果您不希望[出于某种原因]以安装更重大的模块。

 

If you're using Drupal 6, the "Cache Disable" module can be handy for that task if you do not wish [for some reason] to install heavier modules like Devel.

 
 
2
 
vote

旧问题,但我只是看到它突然出现了一个与我正在做的搜索相关的。

几乎所有的缓存清除方法最终调用 drupal_flush_all_caches 到底。您可以在您自己的代码中的各种情况下致电。

 

Old question, but I just saw it popped up as a related one to a search I was doing.

Nearly all of the cache clearing methods end up calling drupal_flush_all_caches in the end. You can play around with calling this in various circumstances in your own code.

 
 
2
 
vote

滴水的缓存量有时会疯狂。

以下是禁用和清除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中的缓存,如果上面不起作用,则在管理面板(/ xcache-admin)中。

eaccelerator

  drush eval "function_exists('accelerator_reset') && accelerator_reset();"   

apc

  drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"   

opcache

如果使用php> = 5.5 ,则清除PHP OPCache
  drush eval "function_exists('opcache_reset') && opcache_reset();"   

注意:上面的cli命令不会为apache清除缓存,按照: opcache - php5.4中的清洁缓存和较低

memcached

如果您使用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缓存。

rannish

如果您正在使用rarnish,建议安装 ramish 模块并设置以下内容在您的设置文件中行:

  $conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';   
所以如此清漆缓存将在Drupal清除缓存上清除。

或者,您可以使用curl手动清除页面:

  curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123   

阅读更多:我该如何清除清漆缓存?

drupal

通过润滑清除Drupal缓存:

  drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();" 0  

您可以在/ admin / config /开发/性能方面做同样的事情,因为有时,ui缓存比从cli更好的方式清除。


这是用于清除所有缓存的有用shell脚本:

  drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();" 1  
 

Amount of caches used with Drupal sometimes can get crazy.

Here are the common methods of disabling and clearing Drupal caches and associated with it.


DISABLING CACHES:

Note that you can't disable all the caches, as some of them are required by Drupal.

Here is a method of disabling the caches by adding the following lines into your settings file:

// 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; 

If you disable all your caches, your website will be very slow, so it's not recommended for any other environments exempt your development machine.


CLEARING CACHES

XCache

Clear XCache caches if used:

drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();" 

Or clear the cache in XCache in admin panel (/xcache-admin) if above won't work.

eAccelerator

drush eval "function_exists('accelerator_reset') && accelerator_reset();" 

APC

drush eval "function_exists('apc_clear_cache') && apc_clear_cache();" 

OPCache

Clear PHP OPCache if using with PHP >=5.5

drush eval "function_exists('opcache_reset') && opcache_reset();" 

Note: Above CLI command won't clear cache for Apache, as per: Opcache - Clean cache in PHP5.4 and lower.

memcached

If you're using memcached, you should clear, restart or kill your memcached with one of the methods:

As a user (one of these):

echo flush_all > /dev/tcp/127.0.0.1/11211 echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server 

As a root (one of these):

/etc/init.d/rc.d/memcached restart service memcached restart killall memcached # It's automatically restarted on OSX. 

It is also advised to install memcached module with the following line in your settings file:

$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc'; 

So Memcached caches are cleared on standard Drupal clear cache.

Varnish

If you're using Varnish, it's advised to install Varnish module and set the following line in your settings file:

$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc'; 

So Varnish cache would be cleared together on Drupal clear cache.

Alternatively you may use curl for clearing the pages manually:

curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123 

Read more: How can I clear the Varnish cache?

Drupal

Clear Drupal caches via drush:

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();' 

You may do the same at /admin/config/development/performance, as sometimes UI caches are cleared in the better way than from CLI.


Here is the useful shell script for clearing all the caches:

#!/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. 
 
 
 
 
0
 
vote

我们可以使用以下方法之一来清除Drupal

中的缓存

1.)我们可以只访问URL your_domain / admin / config / develion /性能 并单击"清除缓存" 按钮。

2.)如果我们有安装醉汉模块,我们可以通过这个 drush cc所有命令清除缓存。

3。)如果我们有数据库访问,我们可以通过以下命令清除缓存(强调不建议使用以下命令(直接访问生产数据库;使用其中一个替代方案,如果您的网站是"Live" )

截断表缓存;

truncate table cache_block;

truncate表cache_bootstrap;

truncate表cache_field;

truncate表cache_filter;

truncate表cache_form; //注意其他Cache_ *表的重要差异 - 查看以下信息:

truncate表cache_image;

truncate表cache_menu;

truncate表cache_page;

truncate表cache_path;

truncate table cache_token;

truncate表cache_update;

4。)我们还可以在模块文件中编写查询 db_query("从{cache}删除;" );

5。)我们可以使用Drupal API来清除缓存 喜欢cache_clear_all()

6。)我们还可以通过devel模块清除缓存 安装Devel模块并启用此"开发人员/开发块" ,我们可以清除缓存

更多信息cache_form上的cache_form,它具有来自其他缓存_ 表的不同目的:

  • drupal_flush_all_caches()的核心api文档说"不清楚cache_form - 正在进行的表单提交可能会破坏。" 此问题仅适用于带有活动用户而不是开发版本的站点。

  • 清除本帖子中描述的缓存的其他手动方法不会影响cache_form

  • 如果需要缩小生产网站上的Cache_Form大小,请参阅缓存表单表大小是巨大的< / a>

 

we can use one of the following methods to clear cache in drupal

1.) We can just visit url your_domain/admin/config/development/performance and click clear cache button.

2.) If We have install drush module we can we clear cache by this drush cc all command.

3.) If We have database access we can clear cache with the following commands (direct access to a production database is emphatically not recommended; use one of the alternatives instead if your site is "live")

TRUNCATE TABLE cache;

TRUNCATE TABLE cache_block;

TRUNCATE TABLE cache_bootstrap;

TRUNCATE TABLE cache_field;

TRUNCATE TABLE cache_filter;

TRUNCATE TABLE cache_form; // note important differences from other cache_* tables -- see more info below

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.) We can also write query in our module file db_query("DELETE FROM {cache};");

5.) We can use drupal api for clearing cache like cache_clear_all()

6.) We can also clear cache by devel module install devel module and enable the "Developer/Development Block" by this we can clear cache

More info on cache_form, which has a different purpose from other cache_ tables:

  • core api docs for drupal_flush_all_caches() say "Don't clear cache_form - in-progress form submissions may break." This concern applies only to sites with active users and not to development versions.

  • other manual methods of clearing caches described in this post will not affect cache_form

  • if you need to shrink the size of cache_form on a production site, see Cache Form table size is enormous

 
 

相关问题

52  缩放和调整性能的真实世界经验  ( Real world experience in scaling and tuning performance ) 
我正在工作的网站据称,在发布后,我很快就会有一个大规模的命中率。客户谈论每天大约2500次点击左右的可能性。 忽略了一个事实,这个命中率可能是野生的客户端乐观,除了获得最大的服务器可能的,什么是Drupal的应配置,支持大量的命中率的最佳方法。 我读过缩放 drupal.org基础设施, Drupal的性能博客,最...

2  在哪里插入额外的注销功能的最佳位置?  ( Where is the best place to insert additional logout functionality ) 
在用户注销的情况下插入附加逻辑可能会在user.pages.inc中查看 function user_logout() .inc。此代码在核心模块中,您不应该编辑它,但工作得很好...例如,通过将以下代码添加到'user_logout()'函数的顶部... $last_run = variable_get('...

6  将在文件中缓存是替代方案吗?  ( Would cache in files be an alternative ) 
一旦我在一个拥有自己的cms的公司工作,我们习惯于在文件中缓存数据,所以基本上系统将检查缓存文件是否存在,如果不是它会转到数据库,请获取数据,保存一个文件,然后向用户展示它(基本缓存事物)。这导致与数据库的连接较少。 我想知道这是否是司布的好选择,或者如果这种缓存的东西有任何问题。 ...

2  Drupal缓存可防止饼干阅读  ( Drupal caching prevents cookie read ) 
在我的一个生产网站上,我写了一个jQuery样式表切换器。当制作选择并使用PHP时,它会丢弃Cookie,以在覆盖样式的Pageload上选择相应的样式表。一切都很棒,直到我启用性能缓存模式,在每个Pageload上都会忽略cookie。显然,这不是所需的效果,我可以看到为什么这是出现的:是页面被缓存,并且不再真正动...

5  如何处理具有不同文件结构的开发和生产服务器  ( How to handle dev and production servers having different file structure ) 
我知道你不应该这样做,但由于我的控制超出了我的控制,我的Web root的位置在我的Dev和我的生产服务器上不同。由于每次将数据库从生产服务器复制到我的Dev服务器时,我的所有模块都会混淆并指向错误的文件位置。处理此操作的推荐方法是什么? ...

2  用毛发清除升压缓存  ( Clearing boost cache with drush ) 
我正在测试升压模块,这是我正在努力的网站的良好性能增强。 但是,我希望能够通过润滑可以获得提升以清除它的缓存。 Drush cc all 似乎没有这样做。并查看升压模块代码,似乎没有Cron命令。我错过了什么,或者是目前没有实施的东西吗? ...

1  节点访问表变为空  ( Node access table goes empty ) 
我目前有一个项目,我正在使用node_save将mulitple记录插入drupal。它通常是一百一的几百。出于某种原因,有时node_access表最终为空,导致数据"出现" 删除给用户。 有谁知道可以发生什么? 我已审核node_save代码,通知是通过 node_access_acquire_grants($n...

2  Drupal过滤器不可缓存  ( Drupal filters are not cacheable ) 
我有一个具有许多自定义滤波器的Drupal 7站点。一切都适合正确,但不是很快。 它看起来好像过滤缓存系统无法正常工作,因为Cache_Filter表始终为空。 有问题在d.o.但它没有回复。 ...

16  什么都有助于Drupal页面执行时间?  ( What all contributes to drupal page execution time ) 
我有一个网站,我正在调查具有重大性能问题,使用memcache我能够在数量和全部射口时间(从3秒到230毫秒)来带来查询的数量,但页面执行时间均阐明我(我正在查看由devel输出的值)我的理解是页面执行时间= PHP执行的时间,因此我安装了APC,我可以看到正在缓存的PHP操作码和统计数据在APC控制面板中显示HIT...

5  缓存字段/实体/节点  ( Cache field entity node ) 
我有一个自定义字段/小部件,具有格式视图功能,这是高度资源密集的。我目前正在使用 cache_set()/cache_get() 中的 hook_field_formatter_view中的函数的函数为我的字段缓存。 有没有更好的方法,我可以这样做?我试图使用 drupal_render() 's #cache 属...

4  如何根据自定义条件使视图缓存无效?  ( How to invalidate a views cache based on custom criteria ) 
我有一个自定义内容类型( story3 ),datetime字段确定故事是否在列出该内容类型的节点的视图中显示;如果为节点定义的DateTime比当前日期时间更新,则它将不会显示。 我的问题是我必须去和空 admin/config/development/performance ,然后单击 Clear all cac...

22  优化认证用户性能的最佳方法?  ( Best way to optimize for authenticated user performance ) 
关键字在这里认证! 目前(据我所知)通过静态页面缓存(清漆/鱿鱼/升压)来优化匿名访问的De-Facto方法。 但是,据我所知,在大多数用户都经过身份验证的情况下,这似乎似乎似乎不太好。 除了明显的apc,memcache和硬件上的钱,性能如何调整高流量站点的最佳方式,主要是经过身份验证的用户? 例如:Drupal....

2  数据库大小,开发的建议>暂存>生产[关闭]  ( Database size suggestions on dev staging production ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅拍摄了一个问题,只有编辑此帖。 关闭上个月。 ...

2  使用F5服务器作为反向代理缓存(而不是清漆)  ( Using an f5 server as reverse proxy cache instead of varnish ) 
是否有任何经验,阳性或负,在 F5 ? 你是否成功或失败了? 在任何一种情况下,您实现了哪种功能?你得到了多远? ...

3  PressFlow缓存指令  ( Pressflow caching directives ) 
我有一个与清漆的设置。 arnish根据 php标题。我想强制清漆每次由用户更新时都会针对每个节点重新生成缓存。我正在寻找最好的地方。理想情况下,它将在一个笨拙/ pressflow hook(如果有任何可用)在自定义模块中实现。 什么HTTP缓存指令按流量集? 在什么功能,文件和行号? 不解决这两个项目分子的...

1  在同一VPS上运行的许多不同网站上使用升压模块是否有任何含义/考虑?  ( Is there any implication consideration for using the boost module on many differ ) 
在同一VPS上运行的许多不同网站上使用升压模块有任何含义/考虑因素? ...

4  清除/文件/样式目录是否安全?  ( Is it safe to purge the files styles directory ) 
我使用图像样式自动生成缩略图(用于预告片和视图)。我有很多图像,所以我最终在 /files/styles中有很多缓存的缩略图目录。 删除 /files/styles 的内容是安全的,而不会做任何像在drupal中清除缓存?我的希望是,缩略图将根据需要再生。 ...

4  启用受访问受限模块时块缓存  ( Block caching when access restricted modules are enabled ) 
我们有一个创建自定义导航块的模块。它运行了一吨查询,它真的影响性能。 (请注意,我继承了这个网站;我没有写这个代码!) 我们希望缓存块,但内置块缓存(admin / setment / performany)灰色输出,下面的消息称,当启用了定义内容访问限制的模块时,块缓存处于非活动状态。我们确实有几个具有访问限制的模...

3  cache_clear_all()似乎没有工作  ( Cache clear all doesnt seem to work ) 
我有一个带有一些cck字段的块。在此栏中,我有一个与改变该块中的字段值的操作的链接。 代码如下: $specialPages3 重装后,旧值仍然出现。我必须手动清除缓存以查看当前值。 ...

1  不要缓存自定义块  ( Do not cache custom block ) 
我有一个在代码中创建的自定义块。我不想缓存块。我知道我需要使用block_no_cache,但我不确定在哪里使用它。 function mymod_block($op = 'list', $delta = 0) { // set up an empty array which will contain t...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.