【发布时间】:2011-10-22 16:05:44
【问题描述】:
上周的大部分时间我都在为我们的 Magento 商店配置和调整缓存,它在我的开发安装中运行良好。我有 Tinybrick 的 Lightspeed 和 Speedbooster 扩展以及一些自定义。当我编辑产品时,它会进行整页缓存并正确刷新正确的标签,以便仅刷新受影响的页面。我最初使用文件缓存设置它,只是将它切换到 Memcached。在我的本地开发服务器上,这仍然运行良好。当我将它放在与我们的实时站点在同一环境中运行的远程开发服务器上时,这并没有按预期工作。在大多数情况下它是好的,但是当我编辑一个产品时,我必须刷新整个缓存才能看到变化。在做了一些研究之后,我了解到 Memcached 不支持通过匹配标记进行刷新......或者至少这是我从 Zend 文档中理解的:
请注意:使用此后端,目前不支持将“标签”作为“doNotTestCacheValidity=true”参数。
另外,如果您在clean 函数中查看文件Zend/Cache/Backend/Memcached.php 的源代码:
case Zend_Cache::CLEANING_MODE_MATCHING_TAG:
case Zend_Cache::CLEANING_MODE_NOT_MATCHING_TAG:
case Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG:
$this->_log(self::TAGS_UNSUPPORTED_BY_CLEAN_OF_MEMCACHED_BACKEND);
break;
但是,在我的本地开发服务器上,它似乎工作正常,我真的无法解释。所以这就引出了一个问题,“为什么?”。 Zend 框架或 PHP 的版本是否存在可能影响这一点的差异?我的本地开发服务器正在运行以下内容:
带有 Suhosin-Patch (cli) 的 PHP 5.3.3-1ubuntu9.6(构建时间:2011 年 10 月 14 日 22:31:25) 版权所有 (c) 1997-2009 PHP 集团 Zend Engine v2.3.0,版权所有 (c) 1998-2010 Zend Technologies
我们的开发/实时服务器正在运行:
PHP 5.2.17 (cli)(构建时间:2011 年 6 月 13 日 14:23:24) 版权所有 (c) 1997-2010 PHP 集团 Zend Engine v2.2.0,版权所有 (c) 1998-2010 Zend Technologies
这有什么不同吗?有人对这个有经验么?如果这实际上是一个框架限制,是否有任何已知的解决方法?还是我只是做错了什么?
谢谢!
【问题讨论】:
标签: php zend-framework magento magento-1.5