Magento - Magento缓存

mi7gmzs6  于 2022-11-12  发布在  其他
关注(0)|答案(5)|浏览(201)

我正在使用memcache。
我想了解什么是存储在Magento缓存和如何?
magento存储缓存变量与网站范围或存储范围?
我已经在谷歌上搜索和greped代码,但无法得出任何结论,
请如果有人可以指导我正确的链接和路径
谢谢你,向你问好,Saurabh

ilmyapht

ilmyapht1#

如果你去管理区域该高速缓存管理部分,你可以看到它缓存了什么(配置,布局配置,块html输出,翻译,eav类型,等等)。我不是Magento的缓存机制Maven,但这里有一些随机的花絮,可能会有帮助(也许)。(还要注意,我只熟悉Magento 1.3.x,而不是1.4.x,所以事情可能已经改变了)。
缓存实际上存储在var/cache目录中。这里有大量的目录( Mage --0,mage--1,mage--2),每个目录都有该高速缓存文件。执行ls var/cache/mage*/*可以查看所有文件。
配置-此配置源是多种多样的。您的app/etc/local.xml,和所有config.xml文件(在每个模块的etc目录中)组合在一起形成一个大的配置对象。然后Magento从core_config_data表读取以更新配置对象。然后将配置写入缓存文件,以便下次发出请求时,它不会'不需要打开大量的配置文件并访问数据库。不知何故,这些信息被存储在var/cache下的一堆文件中。为了获得一些洞察力,请执行ls var/cache/mage*/*CONF*
布局-这很像配置...在app/design/frontendOrAdminhtml/yournamespace/layout/目录中有一堆xml文件,所有这些文件都被合并到一个布局配置对象中,然后缓存该高速缓存目录中。
块HTML -由块生成的实际HTML被缓存。每个块可以决定它被缓存多长时间。
最后,(不是真的)回答你的问题,该高速缓存是每个网站或商店,我真的不能说,因为我还没有建立一个多网站/多商店商店的需要。它看起来像有可能一些商店/网站特定的文件,但我不能看到他们真的组织在一个逻辑的方式。例如,在我的一个示例中,我看到了一个var/cache/ Mage ----LAYOUT_FRONTEND_STORE0_DEFAULT_BLANK_SEO文件和一个var/cache/mage-----LAYOUT_FRONTEND_STORE1_DEFAULT_BLANK_SEO...但是,我只配置了一个存储,这两个文件的内容是一样的。祝你好运!

pxiryf3j

pxiryf3j2#

您还可以使用一些非常棒的memcached分析和报告工具
http://code.google.com/p/memcached/wiki/Tools

ctzwtxfj

ctzwtxfj3#

我想到的最好的解决方案是使用两级缓存。请参考app/etc/local.xml.additional来了解如何将memcached服务器节点放在那里。注意,在<servers>标记中,您必须使用<server1><server2>这样的标记来封装每个memcached节点的设置。

<cache>
    <backend>memcached</backend>
    <slow_backend>database</slow_backend>
</cache>

通过这种方式,所有缓存都是共享的。
要清除它,我的方法是:
1.关闭Apache
2.连接到mysql并连接到magento数据库并运行truncate core_cache;截短core_cache_tag。
3.然后,我将返回memcached节点。
4.我重新启动apache,但我把它放在负载平衡器之外,直到我至少命中它一次,以生成APC操作码缓存。
这看起来很极端,但我发现它对我很有效。使用后端清除缓存真的很慢。我在core_cache表中有大约100 k个条目,在core_cache_tag中有接近100万个条目。如果我不这样做,有时我会得到奇怪的行为。

xe55xuns

xe55xuns4#

你在./app/etc/local/xml中的Memcache配置将决定Memcache实际缓存的内容。
如果您只使用一个单级缓存(没有),那么Magento会将其缓存(全部)存储在Memcache中。

但是没有定义slow_backend-它正在缓存内容,没有cache_tags -即没有区分缓存项的能力

例如,配置、块、布局、转换等。
因此,如果没有定义,您就无法单独刷新缓存,事实上,您几乎总是必须依靠“刷新缓存存储”才能真正看到更新生效。
我们在这里写了一篇很好的文章,涵盖了您的问题-http://www.sonassi.com/knowledge-base/magento-knowledge-base/what-is-memcache-actually-caching-in-magento/

wnavrhmk

wnavrhmk5#

Memcached是一个分布式内存缓存系统。它通过将数据库对象存储在动态内存中来降低外部数据源请求读取时服务器的压力,从而加快具有大型动态数据库的网站的速度。Memcached层减少了数据库请求的次数。
缓存实际上存储在var/cache目录中。这里有大量的目录( Mage --0,mage--1,mage--2),每个目录都有该高速缓存文件。执行ls var/cache/mage*/* 可以查看所有文件。

设定记忆快取Magento 2

Magento 2也支持Memcached来缓存对象,但是默认情况下它是不启用的。你需要对$Magento2Root/app/etc/env.php文件做一些简单的修改来启用它。
在env.php中,您将看到大量具有不同设置和配置的PHP数组。在您喜欢的代码编辑器中打开该文件,并找到以下代码:

array (
session' =>
    'save' => 'files',
),

将此区块修改为:

'session' =>
    array (
      'save' => 'memcached',
      'save_path' => '<memcache ip or host>:<memcache port>'
),

请注意,memcache ip的默认值为127.0.0.1:11211。同样,memcache port的默认值为11211。
如需完整手册,请参阅:https://www.cloudways.com/blog/magento-2-memcached/https://devdocs.magento.com/guides/v2.4/config-guide/memcache/memcache_magento.html显示器

相关问题