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