ความแตกต่างระหว่างอายุการใช้งานแคชขั้นต่ำและการหมดอายุของหน้าแคช


35

บนหน้าประสิทธิภาพ Drupal ภายใต้แคช fieldset คุณมีสองตัวเลือก หนึ่งคืออายุการใช้งานแคชขั้นต่ำและอีกอันคือหน้าแคชที่หมดอายุ

ป้อนคำอธิบายรูปภาพที่นี่

ความแตกต่างระหว่างสองสิ่งนี้คืออะไร


มองดูที่คำว่า "ภายนอก";)
Mołot

1
ฉันรู้คำตอบ ฉันคิดว่าจะเขียนคำตอบโดยละเอียดเล็กน้อยเพื่อตรวจสอบความคิดของฉันและหวังว่ามันจะช่วยคนอื่นได้
Gokul NK

สำหรับคำตอบอย่างละเอียดตรวจสอบdrupal.stackexchange.com/questions/83315/ …
Gokul NK

คำตอบ:


39

ฉันได้ติดตามการสังเกตหลังจากใช้เวลาสองสามชั่วโมง หากมีช่องว่างหรือข้อผิดพลาดใด ๆ แจ้งให้เราทราบ ฉันยินดีที่จะทำฉบับต่างๆ

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

ป้อนคำอธิบายรูปภาพที่นี่

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

เมื่อคุณเลือกตัวเลือกนี้คุณจะบอก Drupal

เฮ้ Beast ฟังเมื่อผู้ใช้นิรนามเยี่ยมชมเว็บไซต์ของฉัน

  1. จัดเก็บ HTML ที่สร้างขึ้นในตารางแคช
  2. เพื่อให้ฉันสามารถแสดงผลลัพธ์เดียวกันกับผู้ใช้ทุกคนขณะที่หน้าของฉันยังคงเหมือนเดิมสำหรับผู้ใช้ที่ไม่ระบุชื่อทั้งหมด
  3. และอย่าล้างแคชของหน้าจนกว่าฉันจะบอกล้างแคชทั้งหมด

นอกจากนี้แม้ว่าคุณจะไม่ได้เปิดใช้Cache Pages for anonymous users งานหน้านั้นก็ยังสามารถแคชได้โดยระบบแคชภายนอก เช่น: เพิ่ม

ตอนนี้ให้ย้ายไปที่ตัวเลือกถัดไปที่คุณจะใช้โดยทั่วไป

การหมดอายุของหน้าแคช

ป้อนคำอธิบายรูปภาพที่นี่

  1. โปรดทราบว่าการตั้งค่านี้ไม่มีส่วนเกี่ยวข้องกับตารางฐานข้อมูล Drupal หรือแคช
  2. อ่านคำอธิบายThe maximum time an external cache can use an old version of a page.ขณะที่โมโลตชี้ให้เห็นคำหลักนั้นเป็นคำภายนอก
  3. ดังนั้นสิ่งที่ตัวเลือกนี้ทำโดยพื้นฐานคือตั้งค่าการควบคุมแคชส่วนหัวเป็นpublicและค่าอายุสูงสุดในส่วนหัวเป็นค่าที่ระบุ (1 วันในกรณีนี้)
  4. ส่วนหัวนี้บอกexternalระบบแคชไม่ให้โทรไปยังเซิร์ฟเวอร์สำหรับหน้านี้จนถึงอายุสูงสุดเนื่องจากพวกเขาสามารถแสดงหน้านี้จากแคชของตัวเอง หลังจากอายุสูงสุดระบบแคชควรกลับมาตรวจสอบกับเซิร์ฟเวอร์ Drupal เพื่อดูว่ามีการเปลี่ยนแปลงเนื้อหา

  5. หากเป็นเซิร์ฟเวอร์วานิชมันจะไม่ทำการเรียก Apache และส่งคืนเพจจากแคช ดังนั้นสมมติว่าวานิชได้แคชหน้าและผู้ใช้หลายพันคนได้ร้องขอไปยังหน้านั้น ดังนั้นจึงหมายความว่ามีการประมวลผล 1,000 คำขอโดยไม่ต้องกดปุ่ม Apache Server แม้แต่ครั้งเดียว

เวลาชีวิตแคชขั้นต่ำ ป้อนคำอธิบายรูปภาพที่นี่

หากไซต์ของคุณไม่มีปริมาณการใช้งานมากหรือหากคุณไม่แน่ใจว่าค่านี้คืออะไรมันจะดีกว่าถ้าปล่อยให้ค่านี้เป็นไม่มีเลย

  1. ค่านี้ใช้ไม่เพียง แต่สำหรับหน้า แต่วัตถุแคชทั้งหมด
  2. สิ่งที่ค่านี้บอกคือ "ไม่สามารถให้บริการวัตถุแคชที่เก่าเกินไป"
  3. ในกรณีของเราค่าถูกตั้งไว้ที่ 5 นาที
  4. หากคุณมีหน้าเว็บที่แสดงบล็อกล่าสุดห้ารายการในหน้าแรกของคุณ ความหมายของค่าข้างต้นคือถ้าบล็อกใหม่ถูกสร้างขึ้นมันก็โอเคสำหรับบล็อกที่จะไม่ปรากฏในรายชื่อในห้านาที
  5. เมื่อมีการตั้งค่านี้เพื่อให้การอัปเดต / สร้างใหม่ขั้นต่ำสุดเวลานี้ต้องผ่านไปแล้วและการดำเนินการล้างแคชต้องดำเนินการ

1
ขอบคุณสำหรับคำตอบนี้ ฉันสับสนเล็กน้อย: สำหรับ"หน้าแคชสำหรับผู้ใช้ที่ไม่ระบุตัวตน"คุณพูดว่าหมายความว่า"ไม่ต้องล้างหน้าแคชจนกว่าฉันจะบอกล้างแคชทั้งหมด" สิ่งนี้"ผมบอกว่า"แทน? อะไรจะทำให้แคชถูกลบออก
s427

1
@ s427 โปรดตรวจสอบdrupal.stackexchange.com/questions/102976/…สำหรับรายละเอียดเกี่ยวกับสิ่งที่จะทำให้แคชถูกล้าง
Gokul NK

1
สิ่งที่ฉันคิดว่าน่าสนใจคือสิ่งนี้เป็นจริงเฉพาะเมื่อเปิดใช้งาน "หน้าแคชสำหรับผู้ใช้ที่ไม่ระบุชื่อ" หากไม่มีการเปลี่ยน "การหมดอายุของหน้าที่แคช" จะไม่ทำอะไรเลยและการเปิดใช้งาน "อายุการใช้งานแคชขั้นต่ำ" จะตั้งค่าส่วนหัว เฉพาะในกรณีที่เปิดใช้งานการแคชสำหรับผู้ใช้ที่ไม่ระบุชื่อและจะมีการตั้งค่าส่วนหัว "การหมดอายุของหน้าแคช" เท่านั้น นี่เป็นเรื่องที่ค่อนข้างสับสน ...
Łukasz Zaroda

19

บทความนี้มีบทสรุปที่ดีของคำศัพท์การแคชของ Drupal: http://www.phase2technology.com/blog/caching-in-drupal/

สรุปประเด็นที่เกี่ยวข้อง:

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

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

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