Bạn cần hiểu sự khác biệt rõ ràng giữa hai sản phẩm này để hiểu cách sử dụng chúng.
- APC là cả bộ đệm OPCode và bộ đệm nhanh
- Memcache chỉ là một phần cuối nhanh
Sử dụng APC làm bộ đệm OPCode
Chỉ cần cài đặt mô-đun trên máy chủ của bạn
pecl install apc
Và kích hoạt nó trong php.ini
echo "extension=apc.so" >> /usr/lib/local/php.ini (RedHat/Centos)
echo "extension=apc.so" >> /etc/php5/conf.d/20apc.ini (Debian)
Sau đó, bạn kích hoạt và tinh chỉnh cấu hình thời gian chạy cho phù hợp, ví dụ.
apc.enables
apc.shm_segments
apc.shm_size
apc.optimization
apc.num_files_hint
apc.user_entries_hint
apc.ttl
apc.user_ttl
...
Sau đó khởi động lại PHP / Apache
/etc/init.d/httpd restart (RedHat/Centos)
/etc/init.d/apache2 restart (Debian)
Sau đó, không còn gì để làm. Xác nhận APC được bật nhanh chóng phpinfo()
- nhưng nếu không, tại thời điểm này, phần bộ đệm OPCode của APC đang hoạt động.
Không có gì cần phải được cấu hình về phía Magento.
Sử dụng APC như một phần cuối nhanh
Bạn cần thêm những điều sau đây vào ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
Sau đó xả bộ nhớ cache cửa hàng hiện tại của bạn. Để xác minh nó đang hoạt động, tải một trang ở mặt trước và ./var/cache
thư mục sẽ trống.
Sử dụng Memcache như một phần cuối nhanh
Bạn sẽ cần cài đặt Memcache dưới dạng tiện ích mở rộng PHP và cài đặt Memcache Daemon (Memcached) tương ứng trên máy chủ của bạn.
pecl install memcache
Và kích hoạt nó trong php.ini của bạn
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)
Sau đó cài đặt Memcached trên máy chủ. Đối với RH / Centos, hãy điều chỉnh URL cho phù hợp với phiên bản phát hành và kiến trúc CPU của bạn.
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)
Sau đó sửa đổi Magento để sử dụng Memcache làm phụ trợ nhanh, thay đổi đường dẫn ổ cắm thành kết nối TCP / IP cho phù hợp.
<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>
Hãy cẩn thận với Memcache và gắn thẻ - nó đang lưu trữ cái gì
Memcache chỉ hỗ trợ một cấp độ quan hệ khóa-giá trị duy nhất, do đó, nó không thể lưu trữ các thẻ bộ đệm Magento (được sử dụng để xóa dữ liệu bộ đệm một cách độc lập). Do đó, bạn cần chỉ định một slow_backend
để duy trì mối quan hệ thẻ nội dung bộ đệm hoặc không xác định một mối quan hệ nào cả.
Nếu bạn xác định a slow_backend
, bạn sẽ gặp rủi ro các thẻ bộ đệm phát triển lớn đến mức hiệu suất bị phủ định; đó cũng là vấn đề cố hữu mà bạn không thể mở rộng trên nhiều máy chủ nếu mỗi máy chủ đang duy trì các thẻ bộ nhớ cache của riêng họ.
Vì vậy, khi sử dụng Memcache, cách tiếp cận tốt hơn (với cảnh báo bạn không thể xóa bộ nhớ cache một cách độc lập), là không bận tâm sử dụng slow_backend
.
Trong trường hợp đó, chúng tôi khuyên bạn nên xóa <slow_backend>database</slow_backend>
và thay thế bằng:
<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>
Điều này sẽ phá vỡ / vô hiệu hóa cấp độ bộ nhớ đệm thứ 2 (và ngăn lưu trữ thẻ), nhưng vẫn cho phép hiệu suất của Memcache.
Sử dụng cái nào
Nếu đó là một triển khai máy chủ duy nhất - không có hại gì khi chỉ sử dụng APC cho mọi thứ.
Nếu đây là một thiết lập phân tán - thì bạn sẽ cần sử dụng Memcache làm phụ trợ nhanh (để tất cả các máy có thể truy cập vào cửa hàng chung).
Liên quan nhiều hơn là nếu nhà cung cấp dịch vụ lưu trữ của bạn không thể cho bạn biết đúng thiết lập để sử dụng, bạn chắc chắn với máy chủ lưu trữ sai.
Các bản phân phối: sonassi.com , php.net , repoforge.org