magento memcached не кеширует файлы - PullRequest
5 голосов
/ 09 марта 2012

Проблема:
Файлы не кэшируются с использованием memcached, в то время как я обновил весь кэш с magento admin. Я установил memcached на magento и его статистика похожа на приведенную ниже, а конфигурация выполнена в файле local.xml, который упоминается ниже. пожалуйста, помогите телу, чтобы оно заработало. Я сомневаюсь, что что-то может быть не так на configuration или memcached.

stats
STAT pid 8897
STAT uptime 149352
STAT time 1331275345
STAT version 1.4.6
STAT libevent 2.0.17-stable
STAT pointer_size 64
STAT rusage_user 0.026995
STAT rusage_system 0.030995
STAT curr_connections 5
STAT total_connections 8
STAT connection_structures 7
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 21
STAT bytes_written 1628
STAT limit_maxbytes 536870912
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT evictions 0
STAT reclaimed 0

и я настроил app/etc/config.xml

<config>
<global>
    <cache>
        <backend>memcached</backend><!-- apc / memcached / empty=file -->
        <memcached><!-- memcached cache backend related config -->
        <servers><!-- any number of server nodes can be included -->
            <server>
                <host><![CDATA[127.0.0.1]]></host>
                <port><![CDATA[11211]]></port>
                <persistent><![CDATA[1]]></persistent>
            </server>
        </servers>
        <compression><![CDATA[0]]></compression>
        <cache_dir><![CDATA[]]></cache_dir>
        <hashed_directory_level><![CDATA[]]></hashed_directory_level>
        <hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
        <file_name_prefix><![CDATA[lb-]]></file_name_prefix>
        </memcached>
    </cache>

    <install>
        <date><![CDATA[Fri, 11 Nov 2011 16:02:21 +0000]]></date>
    </install>
    <crypt>
        <key><![CDATA[admin]]></key>
    </crypt>
    <disable_local_modules>false</disable_local_modules>
    <resources>
        <db>
            <table_prefix><![CDATA[]]></table_prefix>
        </db>
        <default_setup>
            <connection>
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[username]]></username>
                <password><![CDATA[password]]></password>
                <dbname><![CDATA[dbnam]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
                <active>1</active>
            </connection>
        </default_setup>
    </resources>
    <session_save><![CDATA[files]]></session_save>
</global>
<admin>
    <routers>
        <adminhtml>
            <args>
                <frontName><![CDATA[admin]]></frontName>
            </args>
        </adminhtml>
    </routers>
</admin>

Ответы [ 4 ]

2 голосов
/ 09 марта 2012

используйте следующие параметры:

    <config>
    <global>
        <session_save><![CDATA[]]></session_save> <!-- db / memcache / empty=files -->
        <session_save_path><![CDATA[]]></session_save_path><!-- e.g. for memcache session save handler tcp://10.0.0.1:11211?persistent=1&weight=2&timeout=10&retry_interval=10 -->
        <session_cache_limiter><![CDATA[]]></session_cache_limiter><!-- see http://php.net/manual/en/function.session-cache-limiter.php#82174 for possible values -->
        <cache>
            <backend></backend><!-- apc / memcached / xcache / empty=file -->
            <slow_backend></slow_backend> <!-- database / file (default) - used for 2 levels cache setup, necessary for all shared memory storages -->
            <memcached><!-- memcached cache backend related config -->
                <servers><!-- any number of server nodes can be included -->
                    <server>
                        <host><![CDATA[]]></host>
                        <port><![CDATA[]]></port>
                        <persistent><![CDATA[]]></persistent>
                        <weight><![CDATA[]]></weight>
                        <timeout><![CDATA[]]></timeout>
                        <retry_interval><![CDATA[]]></retry_interval>
                        <status><![CDATA[]]></status>
                    </server>
                </servers>
                <compression><![CDATA[0]]></compression>
                <cache_dir><![CDATA[]]></cache_dir>
                <hashed_directory_level><![CDATA[]]></hashed_directory_level>
                <hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
                <file_name_prefix><![CDATA[]]></file_name_prefix>
            </memcached>
        </cache>
    </global>
</config> 

Кроме того, убедитесь, что файл PHP memcache.ini настроен правильно, как показано ниже:

$ aptitude install php5-memcache
$ aptitude install memcached

extension=memcache.so

[memcache]  
memcache.dbpath="/var/lib/memcache"  
memcache.maxreclevel=0  
memcache.maxfiles=0  
memcache.archivememlim=0  
memcache.maxfilesize=0  
memcache.maxratio=0  

;Use memcache as a session handler  
session.save_handler=memcache  

;Defines server urls to use for session storage  
session.save_path="tcp://localhost:11211?persistent=1&weight=2&timeout=10&retry_interval=10"  
2 голосов
/ 09 марта 2012

Во-первых, убедитесь, что демон Memcache действительно запущен

ps ax | grep memcache

Затем убедитесь, что вы действительно установили расширение PHP

Найдите в документе Memcache, чтобы убедиться, что он действительно загружен.

Это две единственные причины, по которым Memcache не будет работать.

Проверить, используется ли Memcache, очень просто.

  1. Отключить все кэши в админке Magento (Система> Управление кэшем).
  2. Нажмите «Очистить кэш-память»
  3. Включить все кэши

Затем очистите содержимое

./var/cache/*

, затем перезагрузите страницу во внешнем интерфейсе и просмотрите содержимое вышеуказанного каталога. Если он остается пустым, используется Memcache.

См. http://www.sonassi.com/knowledge-base/magento-kb/what-is-memcache-actually-caching-in-magento/

0 голосов
/ 10 марта 2012

У меня была эта проблема на днях.Если я правильно помню, это вызвано тем, что file_name_prefix не оставлен пустым (или <![CDATA[]]>)

0 голосов
/ 09 марта 2012

В зависимости от того, какую версию Magento вы используете, будут некоторые изменения в параметрах local.xml для кэширования. В никогда версии вы должны определить и backend, и slow_backend, и настроить Memcache как backend.

Что-то в этом роде может помочь:

<cache>
<slow_backend></slow_backend> 
<fast_backend>memcached</fast_backend>
<fast_backend_options>
  <servers>
    <server>
      <host>127.0.0.1</host>
      <port>11211</port>
      <persistent>1</persistent>
    </server>
  </servers>
</fast_backend_options>

<backend>memcached</backend>
<memcached>
  <servers>
    <server>
      <host>127.0.0.1</host>
      <port>11211</port>
      <persistent>1</persistent>
    </server>
  </servers>
</memcached>
</cache>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...