Questions tagged «caching»

在Drupal中,通过减少处理量来提高响应时间通常需要使用缓存。

5
如何禁用Twig并阻止特定模块的缓存?
我正在使用Drupal 8中的一个模块,该模块从外部REST API中检索对时间敏感的数据。数据被处理并转发到块。最终数据将发送到Twig模板,如下所示: ... public function build() { $build = []; $build['ticker_block'] = [ '#theme' => 'module_theme', '#data' => $myService->data(), ]; return $build; } 这在启用了缓存且呈现的数据显示为过时的生产环境中不起作用。如何仅对我的模块禁用缓存,我是否必须对Twig模板和Block插件都进行缓存?
15 8  caching  theming 

5
如何防止特定页面被缓存?
我已经在Drupal 8网站上激活了缓存,当然所有页面都按预期进行了缓存。 但是,我希望有一个特定的页面绕过该缓存。 在控制器中,我按如下所示构建了页面: public function myPage() { return [ '#markup' => time(), ]; } 如何告诉Drupal不要缓存我的页面?
15 caching  8 


1
实施自定义缓存标签
我想在D8中使用新的缓存标记来帮助保持不同类型(实体,节点,块等)的相关内容同步。但是通过阅读此功能的当前可用文档,我不了解如何在创建/更新内容项时将自己的缓存标签添加到内容项中。 例如,当创建类型为Store的新节点时,我想添加缓存标记location:new_york_123,并为aa块添加相同的标记。然后,如果将New York 123位置的显示名称更改为SoHo,则可以使缓存标记无效,并更新所有相关内容。
14 8  caching 

5
缓存表单表的大小巨大
上个月,缓存表的大小已增加到10+ GB,我已通过截断临时修复了它。上次我检查它约为1GB。因此,几个月后它将再次达到10GB。应该如何处理? 请注意,我已禁用了该站点上的所有cron作业。如果是这个原因,应该启用哪个cron?
13 database  caching 

4
手动清除数据库存储的高速缓存时应清空哪些表?
在D8之前,要手动清除缓存,可以截断所有以开头的表cache_。 在Drupal 8中,仍然存在以开头的表cache_,但也有一个cachetags表。 cache_*如果需要手动清除缓存,D8中的建议是否仍会被截断?将cachetags表和表一起截断是否安全/必需/建议cache_*? 我知道可能会有contrib模块在做事上有所不同,我最感兴趣的是内核的功能,以及总体上Drupal 8的“最佳实践”。
13 8  caching 

4
在自定义块上设置缓存上下文的正确方法是什么?
我遇到了一个问题,即对于注销用户而言,每页应该唯一的一个块不适用。问题是我在视图搜索页面上拥有一个自定义块插件,该插件包含自定义过滤器(有点像自定义替换暴露的过滤器。通过/ admin / structure / block放置的块)。 根据我对Drupal 8的了解,我将缓存上下文添加到构建数组中: public function build() { $search_form = \Drupal::formBuilder()->getForm('Drupal\mymodule\Form\SearchForm'); return [ 'search_form' => $search_form, '#cache' => ['contexts' => ['url.path', 'url.query_args']] ]; } 但是看来这一定是不正确的,因为注销后,该块将在第一个视图上缓存,并且当url更改时,它没有显示该块的新版本。 我认为可能是导致问题的视图页面,但是即使我在视图页面上关闭了缓存,问题仍然存在。 我可以通过几种方式解决此问题,例如,使用preprocess_block挂钩: function mymodule_preprocess_block__mycustomsearchblock(&$variables) { $variables['#cache']['contexts'][] = 'url.path'; $variables['#cache']['contexts'][] = 'url.query_args'; } 但这让我感到困扰,我不能只是将缓存上下文放入块的构建数组中。 由于我的代码块扩展了BlockBase,因此我决定尝试使用getCacheContexts()方法,尤其是因为我看到核心中的某些模块正在这样做。 public function getCacheContexts() { return Cache::mergeContexts(parent::getCacheContexts(), ['url.path', …
13 8  blocks  caching 


4
为什么不能将另一个允许的文件扩展名添加到Drupal 7图像字段?
我为通过的图片上传添加了SVG文件扩展名,admin/structure/types/manage/image/fields/gallery_image如下所示: 但是当我上传图片时,仍然不允许上传SVG。 我肯定在管理页面上按了“保存”,然后清除了缓存,当我检查field_config_instance表时,甚至在数据库中看到了所需的设置。必须有其他未更新的表或缓存。任何想法?

2
结合使用带有APC,Varnish和Memcache的Drupal 7,将哪些容器放入哪个缓存中?
我正在优化Drupal 7网站,并且已经安装了清漆,内存缓存和APC,并使用了它们各自的Drupal 7模块。在我的settings.php中,有以下$conf选项。 我的问题是要获得更好的性能,并使所有这些缓存协同工作,我是否需要添加更多配置选项? 模块自述文件通常假定使用单个缓存系统。通过运行3个单独的缓存后端,是否需要任何技巧来获得更好的性能? // Add Varnish as the page cache handler. $conf['cache_backends'][] = 'sites/all/modules/varnish/varnish.cache.inc'; $conf['cache_class_cache_page'] = 'VarnishCache'; // Drupal 7 does not cache pages when we invoke hooks during bootstrap. // This needs to be disabled. $conf['page_cache_invoke_hooks'] = FALSE; $conf['cache_backends'][] = 'sites/all/modules/apc/drupal_apc_cache.inc'; $conf['cache_class_cache'] = 'DrupalAPCCache'; $conf['cache_class_cache_bootstrap'] = 'DrupalAPCCache'; …

1
与Drupal 7多站点有效地使用Memcache
我在我们的Memcache实例(v1.4.4)上将命中率设置为55%,并且想知道如何做才能提高命中率。我们处于多站点设置(超过30个站点)中,其中有两个负载平衡的Web服务器;每个Web服务器上都有一个memcached实例。 在中settings.php,我有: $conf['memcache_servers'] = array( '11.22.33.44:11211' => 'default', '11.22.33.45:11211' => 'default', ); $conf['memcache_bins'] = array('cache' => 'default'); $conf['memcache_key_prefix'] = $_SERVER['SERVER_NAME']; 我正在考虑使用垃圾箱来提高命中率,但是遇到了一些建议,即最新的内存缓存模块已经做到了这一点,但是我不确定,因为该模块的说明中包含设置垃圾箱的说明。 如果要走垃圾箱,您如何确定需要什么(表?)有自己的垃圾箱?这些是我站点中的缓存表: cache cache_admin_menu (empty) cache_block (empty) cache_bootstrap cache_field cache_filter (empty) cache_form (empty) cache_image (empty) cache_media_xml (empty) cache_menu cache_page (empty) cache_path (empty) cache_token (empty) cache_update (empty) cache_views cache_views_data (empty) ctools_css_cache …


2
清除缓存不会清除缓存表吗?
我不完全了解“清除缓存”操作。我只是单击清除缓存,在admin / config / development / performance中清除所有缓存,然后转到数据库检查所有cache _...表,但我发现它们都不为空。 这正常吗? 我可以截断所有cache _...表吗? 实际上,我只需要清除cache_form。我可以截断这张桌子吗?
11 caching 

2
使用钩子更新/删除/添加新内容后如何删除缓存?
我们在Drupal 7中有一个自定义服务模块和一个站点,在编辑器添加新内容或更新现有内容之后,我得到了删除缓存的任务。 我已经读过一个名为Cache Actions的模块,但是,正如我所说,我需要在自定义模块上创建该函数。 另外,我已经开始阅读有关Drupal钩子的内容,但仍然不知道如何实现此任务。有什么建议么?谢谢。
11 7  hooks  caching 

3
如果您在Drupal 8中更新路由文件,如何清除缓存?
自从Drupal 7推出以来,我就一直在学习Drupal 8 drush cache-rebuild。 在我的VPS上,这需要15秒(然后下一页的加载速度也很慢)。我感觉这可能是一把八角锤,可以打破坚果的状况。 有没有更有效的方法让Drupal从{module}.routing.yml文件重新编译(更改的)路由?
10 caching  8  routes 

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.