Magento Cache - ความสับสนเกี่ยวกับวานิช, เรดิส, APC, Memcache


34

ฉันพยายามปรับปรุงการแสดงวีโอไอพี (ไม่ช้าก็เร็ว "MageDev" จะมาถึงจุดนี้ :)

ฉันค้นคว้ามาแล้วและพบว่ามีคำแนะนำที่ดีมากมาย แต่ไม่ใช่คำแนะนำที่เป็นเนื้อเดียวกัน

สิ่งที่ฉันได้คือ:

  • MemCacheหรือRedisเป็นระบบแคชทั่วไปสามารถแคชข้อมูลและสามารถรวมเข้ากับ Magento ได้โดยตรง ( local.xml )
  • APCเป็นแคชสำหรับโค้ด php เองสามารถรวมในระดับเซิร์ฟเวอร์เท่านั้น
  • วานิชเป็นพร็อกซีย้อนกลับซึ่งแคชการตอบสนองสามารถรวมในระดับเซิร์ฟเวอร์เท่านั้น (มีส่วนขยายสำหรับ Magento น้ำมันสน แต่ฉันไม่แน่ใจว่าทำอะไร)

หลังจากการอ่านที่ดีทั้งหมดนี้ฉันยังคงสับสนเล็กน้อยเกี่ยวกับสิ่งที่ระบบแคชข้างต้นเป็นไปได้ที่จะใช้ในการรวมกันสำหรับ EX:

  • MemCache + APC
  • Redis + APC
  • ฉันสามารถเพิ่มวานิชลงในการตั้งค่าด้านบนได้หรือไม่?

เพียงเพื่อให้ชัดเจนคำถามไม่ได้เกี่ยวกับวิธีการกำหนดค่า Magento หรือเซิร์ฟเวอร์ แต่สิ่งที่เป็นไปได้ที่ได้รับอนุญาตและอนุญาตบางอย่างเกี่ยวกับวิธีการผสมระบบแคช (นอกจากนั้นถ้าใครสามารถมาพร้อมกับคำแนะนำที่ดีฉันจะขอบคุณมันขอบคุณ)


คุณสามารถใช้ FPC + Varnish + Turpentine ร่วมกันได้หรือไม่? ขอบคุณ
Bruno Alvarenga

น้ำมันสนมีไว้สำหรับเจาะรู Varnish cache เช่นเดียวกับน้ำมันสนใช้สำหรับเคลือบวานิช
siliconrockstar

คำตอบ:


48

TL; DR - ใน MageStack เราใช้ Varnish, Redis (แคช), Redis (เซสชัน) และ Eaccelerator / Zend OPCache (ขึ้นอยู่กับเวอร์ชันของ PHP)

คุณเข้าใจส่วนใหญ่แล้ว

ส่วนแบ็คเอนด์แคช, เซสชั่นสโตร์, แคป opcode, แคชแบบเต็มหน้าและแคชพร็อกซีย้อนกลับต่างกันทั้งหมด

คุณสามารถใช้เทคโนโลยีที่แตกต่างกันสำหรับทุกคนและคุณสามารถใช้พวกเขาทั้งหมดพร้อมกัน (รวมถึงวานิชและ FPC)

แบ็กเอนด์แคช

  • ไฟล์ (หลัก) เริ่มต้น
  • Memcache (หลัก)
  • APC (หลัก)
  • Redis (<1.9 โมดูลมารยาท Colin Mollenhour)
  • MongoDB (โมดูลมารยาท Colin Mollenhour)
  • Rubic (โมดูลมารยาทของ Daniel Sloof)

คุณสามารถใช้แบ็กเอนด์แคชเดียวเท่านั้น

ขัดกับความเชื่อที่นิยมใช้แคชตามหน่วยความจำจะไม่ปรับปรุงประสิทธิภาพ แต่จะเอาชนะข้อบกพร่องร้ายแรงบางประการในการแคชตามไฟล์เริ่มต้นของ Magento

ในการเขียนข้อความนี้ Redis เป็นคำแนะนำของฉัน

ร้านค้าเซสชัน

  • ไฟล์ (หลัก) เริ่มต้น
  • Memcache (หลัก)
  • Redis (<1.9 โมดูลมารยาท Colin Mollenhour)
  • MongoDB (โมดูลมารยาท Colin Mollenhour)

คุณสามารถใช้ร้านค้าเซสชั่นเดียวเท่านั้น

ตรงกันข้ามกับความเชื่อที่ได้รับความนิยมการใช้เซสชั่นที่ใช้หน่วยความจำจะไม่เพิ่มประสิทธิภาพ

ในการเขียนข้อความนี้ Redis เป็นคำแนะนำของฉัน

OpCode Cache

  • APC
  • XCache
  • ตัวเร่งความเร็ว (PHP <5.4)
  • Zend OPCache (PHP> 5.4)

คุณสามารถติดตั้งแคช opcode ได้หลายตัว แต่ไม่แนะนำและฉันไม่คาดหวังว่าจะได้รับผลกำไรใด ๆ

คำแนะนำของฉันอยู่ในวงเล็บด้านบน

ไม่จำเป็นต้องติดตั้งโมดูลเพื่อใช้ประโยชน์จากสิ่งนี้

Reverse Proxy Cache

  • เคลือบเงา
  • Nginx
  • อาปาเช่
  • … และอื่น ๆ อีกมากมาย

คุณสามารถใช้พร็อกซีย้อนกลับหลายรายการและในขณะที่ทำเช่นนั้นมีความซับซ้อนและมีแนวโน้มที่จะยืดตัวแคชมันอาจมีข้อดี (เช่นเพื่อป้องกันการประทับตราระหว่างการล้างแคช)

ใช้เมื่อจำเป็น (เช่นไม่ใช่เพื่อเพิ่มความเร็วของไซต์ที่ช้า แต่เพื่อลดการใช้ทรัพยากรบนไซต์ที่รวดเร็ว)

เพื่อใช้ประโยชน์จาก reverse proxy มันต้องการทั้งการเปิดใช้งานฝั่งเซิร์ฟเวอร์และต้องการโมดูลสำหรับ Magento

เหตุผลสำหรับโมดูลคือเพื่อช่วยควบคุมตรรกะการแคช (เช่นเพื่อบอกแคชสิ่งที่ควรและไม่ควรแคช) และเพื่อจัดการเนื้อหาแคช (เช่นเพื่อเรียกการล้างแคช)

ฉันไม่แนะนำใด ๆ เว้นแต่คุณจะมีความเข้าใจในสิ่งที่คุณทำ การตั้งค่าพร็อกซีย้อนกลับไม่ถูกต้องสามารถทำลายข้อมูลส่วนหัวอาจทำให้เกิดการสูญเสียเซสชันการแบ่งปันเซสชันเนื้อหาค้างเก่าใช้ข้อ จำกัด เพิ่มเติมในการโหลดเวลา / บัฟเฟอร์ใช้ทรัพยากรเพิ่มเติมเป็นต้น

แคชของหน้าเต็ม

  • EE FPC
  • …อื่น ๆ อีกมากมาย (ผ่านโมดูล)

ใช้เมื่อจำเป็น (เช่นไม่ใช่เพื่อเพิ่มความเร็วของไซต์ที่ช้า แต่เพื่อลดการใช้ทรัพยากรบนไซต์ที่รวดเร็ว)

ตรงกันข้ามกับความเชื่อที่ได้รับความนิยมคุณสามารถ (และควร) ใช้ FPC ร่วมกับแคชพร็อกซีย้อนกลับ ทั้งสองแก้ปัญหาต่าง ๆ และมีความสามารถที่แตกต่างกัน

FPC สามารถใช้ประโยชน์จากหน่วยสืบราชการลับมากขึ้นเพราะพวกเขามีการเข้าถึงโดยตรงไปยังเซสชั่นผู้ใช้และแกนกลางของวีโอไอพีในขณะที่พร็อกซีย้อนกลับไม่ทราบแอปพลิเคชัน (มันค่อนข้างเป็นใบ้ .

กล่าวคือ อย่าคิดว่าเคลือบเงาหรือ FPC คิดว่าเคลือบเงาและ FPC


1
เบาะแสใด ๆ เกี่ยวกับmod_pagespeed? โดยวิธีที่ดีและตอบขอบคุณที่ชัดเจน
Fra

2
คำแนะนำมากมาย แต่ขอบเขตของ PageSpeed ​​นั้นเกินกว่าคำถามดั้งเดิมของคุณ (และส่วนใหญ่ไม่เกี่ยวข้องกับ Magento) มีเคล็ดลับเล็กน้อยเกี่ยวกับ KB ของเราที่นี่sonassihosting.com/help/magestack/ ......
Ben Lessani - Sonassi

การแยกที่ชัดเจนระหว่างการแคชต่าง ๆ ที่สามารถใช้กับ Magento ได้ สิ่งสำคัญที่สุดคือคำแนะนำ อย่างไรก็ตามคุณดูเหมือนจะไม่แนะนำให้ใช้แคชวานิชในทางตรงกันข้ามกับคำแนะนำเอกสารอ้างอิงวีโอไอพี - devdocs.magento.com/guides/v2.3/config-guide/varnish/ …
Pandurang Patil

@PandurangPatil คุณทราบดีว่าคำตอบของฉันมาจาก 8 ปีที่แล้ว - เมื่อไม่มีวีโอไอพี 2 ... ดังนั้นความคิดเห็นของฉัน "ในขณะที่เขียน" หากว่าวีโอไอพี 2 นั้นมีอยู่เมื่อถามคำถามนี้คำตอบของฉันจะแตกต่างออกไป
Ben Lessani - Sonassi

@ BenLessani-Sonassi ฉันไม่ได้ใส่ใจกับวันที่ อย่างไรก็ตามคุณจะแนะนำให้ใช้แคชวานิชในบริบทของวันนี้ด้วย magento 2.x?
Pandurang Patil

8

ฉันจะไปหา Redis + APC พร้อมวานิชด้านบน

คุณถาม 'ทำไม Redis'? อ่านคำตอบ SO ที่ยอดเยี่ยมนี้ Redis เข้ามาแทนที่ระบบแคชไฟล์มาตรฐานของ Magento เนื่องจาก Redis เร็วขึ้นมันจะทำให้คุณมีการปรับปรุงความเร็ว

วานิชไม่ได้มีอะไรเกี่ยวข้องกับงานภายในมากนัก มันวางอยู่ด้านบนและแคชเนื้อหาแบบคงที่ดังนั้นจึงไม่ถึง Magento ตามคำขอ ยกเว้นส่วนที่เป็นรูเจาะนั่นคือ

ในขณะที่วานิชเพียงเน้นที่การแคชส่วนหน้า Redis จะเร่งความเร็วแคชประเภทอื่นเช่นแคช EAV และคอนฟิกูเรชัน

คุณสามารถเลือกที่จะดูส่วนขยายแคชแบบเต็มหน้าสำหรับวีโอไอพีแทนวานิช แม้ว่าจะไม่เร็วเท่าไหร่ แต่โดยทั่วไปแล้วจะใช้งานง่ายกว่าและไม่ต้องพึ่งพาซอฟต์แวร์เพิ่มเติม (เช่นวานิช)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.