คุณต้องเข้าใจความแตกต่างที่ชัดเจนระหว่างผลิตภัณฑ์ทั้งสองนี้เพื่อทำความเข้าใจวิธีการใช้งาน
- APC เป็นทั้งแคช OPCodeและFast Backend
- Memcache เป็นเพียงแบ็คเอนด์ที่รวดเร็ว
การใช้ APC เป็น OPCode Cache
เพียงติดตั้งโมดูลบนเซิร์ฟเวอร์ของคุณ
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 ทำงานอยู่
ไม่จำเป็นต้องกำหนดค่าทางด้านวีโอไอพี
การใช้ APC เป็นแบ็คเอนด์ที่รวดเร็ว
คุณต้องเพิ่มสิ่งต่อไปนี้ในของคุณ ./app/etc/local.xml
<global>
...
<cache>
<backend>apc</backend>
<prefix>mystore_</prefix>
</cache>
...
</global>
จากนั้นล้างแคชร้านค้าที่คุณมีอยู่ เพื่อตรวจสอบว่ามันใช้งานได้โหลดหน้าใน front-end และ./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 ให้เหมาะกับรุ่นที่วางจำหน่ายและสถาปัตยกรรมของ CPU
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 และการแท็ก - มันคืออะไรเก็บ
Memcache สนับสนุนความสัมพันธ์ของคีย์ - ค่าในระดับเดียวเท่านั้นดังนั้นจึงไม่สามารถเก็บแท็กแคช Magento ได้ (ซึ่งใช้เพื่อล้างข้อมูลแคชอย่างอิสระ) ดังนั้นคุณต้องระบุ a 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