我正在使用memcache。
我想了解Magento缓存中存储的内容以及如何存储?
Magento是使用网站范围还是商店范围来存储缓存变量?
我已经搜索和查找了代码,但无法得出结论,请如果有人能够指导我正确的链接和路径
谢谢&问候, Saurabh
ls var/cache/mage*/*
命令以查看所有文件。ls var/cache/mage*/*CONF*
命令。最后,回答你有关缓存是按网站还是商店计算的问题,我不能确切地说,因为我还没有设置过多个网站/商店的店铺。看起来可能会有一些特定于商店/网站的文件,但我看不出它们真正有逻辑性的组织方式。例如,在我的一个实例中,我看到了一个var/cache/mage--f/mage---LAYOUT_FRONTEND_STORE0_DEFAULT_BLANK_SEO文件和一个var/cache/mage--f/mage---LAYOUT_FRONTEND_STORE1_DEFAULT_BLANK_SEO...但是事实上,我只配置了一个商店,并且这两个文件的内容相同。祝好运!
<servers>
标签内,您必须有像 <server1>
和 <server2>
这样的标签,封装每个 memcached 节点的设置。<cache>
<backend>memcached</backend>
<slow_backend>database</slow_backend>
</cache>
这样所有的缓存都是共享的。
清除缓存的方法如下:
1. 关闭Apache
2. 连接到MySQL并连接到Magento数据库,然后运行truncate core_cache; truncate core_cache_tag。
3. 然后重启Memcached节点。
4. 重新启动Apache,但在将其放入负载均衡器之前,我会保持它处于未命中状态,以生成APC opcode缓存。否则,负载可能会飙升。
这一切似乎都很极端,但我发现这对我很有效。使用后端清除缓存非常慢。我在core_cache表中有大约100k条目,在core_cache_tag中有近100万条目。如果我不这样做,有时会出现奇怪的行为。
var/cache
目录,发现之前的缓存文件仍然存在。 - nicoX您在./app/etc/local/xml中的Memcache配置将决定Memcache实际缓存的内容。
如果您仅使用单级缓存(没有slow_backend),那么Magento将完整地将其缓存存储在Memcache中。
然而,如果没有定义cache_tags,则它会缓存内容,即无法区分缓存项。
例如:配置、块、布局、翻译等。
因此,如果没有定义slow_backend,则无法单独刷新缓存,事实上,您几乎总是需要依赖“清除缓存存储”才能看到更新生效。
我们在这里撰写了一篇很好的文章,涵盖了您的问题 - http://www.sonassi.com/knowledge-base/magento-knowledge-base/what-is-memcache-actually-caching-in-magento/
Memcached是一种分布式内存缓存系统。通过将数据库对象存储在动态内存中,以减少每当外部数据源请求读取时对服务器的压力,从而加速具有大型动态数据库的网站。Memcached层可以减少数据库请求的次数。
实际上,缓存存储在var/cache目录中。其中有很多目录(mage--0、mage--1、mage--2),每个目录都有缓存文件。执行ls var/cache/mage*/*命令以查看所有文件。
配置Memcache 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>'
),