Вам потрібно зрозуміти чітке розмежування цих двох продуктів, щоб зрозуміти, як ними користуватися.
- APC є і кешем OPCode, і швидким
- Memcache - це просто швидкий бекенд
Використання APC як кеша OPCode
Просто встановіть модуль на свій сервер
pecl install apc
І ввімкніть це у своєму php.ini
echo "extension=apc.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=apc.so" >> /etc/php5/conf.d/20apc.ini (Debian)
Потім включите і тонкої настройки конфігурації під час виконання , щоб костюм, наприклад.
apc.enabled
apc.shm_segments
apc.shm_size
apc.optimization
apc.num_files_hint
apc.user_entries_hint
apc.ttl
apc.user_ttl
...
Потім перезапустіть PHP / Apache
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
Після цього більше нічого робити. Підтвердити, що APC увімкнено швидкоphpinfo()
але в іншому випадку в цей момент частина кешу OPCode APC активна.
Нічого не потрібно налаштовувати на стороні Magento.
Використання APC як швидкого бекенда
Вам потрібно додати наступне до свого ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
Потім очистіть наявні кеші магазину. Щоб переконатися, що він працює, завантажте сторінку в передній частині та на./var/cache
каталог повинен залишатися порожнім.
Використання Memcache як швидкого бекенда
Вам потрібно буде встановити Memcache як розширення PHP та встановити відповідний Memcache Daemon (Memcached) на свій сервер.
pecl install memcache
І ввімкніть це у вашому php.ini
echo "extension=memcache.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=memcache.so" >> /etc/php5/conf.d/20memcache.ini (Debian)
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
Потім встановіть Memcached на сервер. Для RH / Centos відрегулюйте URL відповідно до версії випуску та архітектури процесора.
rpm -Uhv http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum --enablerepo=rpmforge install memcached
apt-get install memcached (Debian)
Потім змініть Magento, щоб використовувати Memcache як швидкий бекенд, змінити шлях сокета на TCP / IP-з'єднання відповідно.
<cache>
<slow_backend>database</slow_backend>
<fast_backend>memcached</fast_backend>
<fast_backend_options>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</fast_backend_options>
<backend>memcached</backend>
<memcached>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</cache>
Застереження Мемкаче та маркування - що це зберігає
Memcache підтримує лише один рівень співвідношень ключів і значень, тому він не може зберігати теги кешу Magento (які використовуються для самостійної обробки даних кешу). Як результат, вам або потрібно вказатиslow_backend
щоб підтримувати відношення тегів кеш-вмісту, або взагалі не визначати його.
Якщо визначити a slow_backend
, ви ризикуєте зрости теги кешу настільки великими, що продуктивність буде занижена; Існує також притаманна проблема, яку неможливо змінити на декількох серверах, якщо кожен сервер підтримує власні теги кешу.
Таким чином, при використанні Memcache, кращий підхід (з застереженням ви не можете самостійно промивати кеші) - це не турбуватися за допомогоюslow_backend
.
У такому випадку ми пропонуємо видалити <slow_backend>database</slow_backend>
та замінити його на:
<slow_backend>Memcached</slow_backend>
<slow_backend_options>
<servers>
<server>
<host>unix:///tmp/memcached.sock</host>
<port>0</port>
<persistent>0</persistent>
</server>
</servers>
</slow_backend_options>
Це порушить / відключить кеш-пам'ять 2-го рівня (і запобіжить збереженню тегів), але все ж дозволить виконати Memcache.
Який використовувати
Якщо це єдине розгортання сервера - не шкода просто використовувати APC для всього.
Якщо це розподілене налаштування - тоді вам потрібно буде використовувати Memcache як швидкий бекенд (щоб усі машини мали доступ до загального магазину).
Більше занепокоєння полягає в тому, що якщо ваш хостинг-провайдер не може сказати вам правильну настройку для використання, ви, звичайно, з невірним хостом.
Атрибути: sonassi.com , php.net , repoforge.org