http://www.developertutorials.com/tutorials/php/php-caching-1370/
วิธีการ cache php ด้วยวิธีนี้ work ใหม่ครับ ?
มีข้อเสียหรือ ข้อจำกัดอะไรใหมครับ
http://www.developertutorials.com/tutorials/php/php-caching-1370/
วิธีการ cache php ด้วยวิธีนี้ work ใหม่ครับ ?
มีข้อเสียหรือ ข้อจำกัดอะไรใหมครับ
ก็ใช้ได้ครับ มันคือการเอา php ไป generate html
ความเร็วในการเปิดเพจของเว็บจะได้เท่ากับ html แต่เว็บมันจะไม่ค่อย dynamic นะครับ
content บนเว็บจะเปลี่ยนเฉพาะเมื่อมีการ re generate html ใหม่ ซึ่งถ้าตั้งเวลา re gen ไว้เร็วไปมันก็ไม่ต่างอะไรจากใช้ PHP ธรรมดา
แต่ถ้าตั้งช้าไปข้อมูลในเว็บมันก็จะไม่ค่อยอัพเดตอีก แล้วมันอาจจะสร้างปัญหาได้กับเว็บประเภทที่มีการโพสข้อมูลขึ้นเว็บ
วิธี gen เป็น html ก็เป็นหนทางนึงที่ช่วยได้ครับผม ผมนำเอาวิธีนี้มาแก้ไขปัญหาของ khonkaenlink ครับผม
cache แบบ dynamic มีด้วยเหรอครับ - -!
ก็ถ้ามันมีปัญหาเรื่องการอัพเดต เราแก้ด้วยวิธีนี้ดีมั๊ย
แบบมันต้องการอัพเดตตอนคนโพสต์ reply เราก็ใส่ php ว่า ถ้ามีคน Reply ก็ให้เข้าไปลบไฟล์ cache ด้วย
ทีนี้ก็มีการวิวหน้านั้นอีก มันก็จะสร้างไฟล์ cache ใหม่
ส่วนหน้า List topic ก็ตั้งเวลาไว้สัก 5 นาทีไงครับ
แบบนี้จะแก้ปัญหานี้ได้นะผมว่า
แล้วมันมีข้อเสียอะไรมั๊ยครับ นอกจากว่าข้อมูลอาจจะไม่สดใหม่ วานผู้เคยใช้บอกหน่อยถ้ามีข้อเสีย
ผมไม่เคยทำแบบนี้ แต่คิดว่าจะเอาไปใช้ครับ
ต่างครับ
สมมติว่า การเรียกหน้าแรกของเว็บ php ปกติ มีการ query ใช้เวลา 0.1 วินาที
เว็บมีคนเข้าจำนวนมากระดับหนึ่ง สมมติว่ามีคนเรียกหน้าแรกเว็บพร้อมๆกันที่ 100 หน้าใน 1 วินาที (100req/s) ก็จะต้องใช้เวลา query = 0.1x100 = 10วินาที
แค่นี้เครื่องก็ทำงานไม่ทันแล้ว เพราะใน 1 วินาทีที่มีการ request เข้ามาต้องใช้เวลา query ถึง 10 วินาที
แต่หากมีการ cache เพียงแค่ตั้งให้ update ทุกๆ 10 วินาที แค่นี้ก็ช่วยลดการ query ไปได้ถึง 1000 ครั้ง หรือ 100วินาที เลยทีเดียว (ในแต่ละ 10 วินาที มีการ query เพียง 1 ครั้ง และสร้าง cache html ไฟล์ไว้แทน)
วิธีการนี้ช่วยลดโหลด server ได้แน่นอนครับ
ซึ่งในการใช้งานจริงยังสามารถเอาไปประยุกต์ให้แยก cache ในแต่ละส่วนของหน้าเว็บไว้ได้ครับ
ถ้าเป้นผม ใช้ Proxy Cache php
มีตั้งหลายแบบ เช่น reverse proxy, ตัว cache ใน framework บางตัว
ส่วนปัญหาเรื่อง update มีแน่นอน 1 ล้านเปอร์เซ็นต์ ถ้าไม่จัดการให้ดีข้อมูลหน้าเว็บพัง
ตัวอย่างที่เห็นได้ชัดคือเว็บ pantip ที่กระทู้ฮ๊อตฮิต มักจะพังเสมอๆ เพราะ pantip ใช้วิธี cache แบบนี้แหล่ะ
ตอนนี้ผมมีเว็บปรับให้ใช้ xcache ตัว cache opcode พวกนี้ มันต่างจากใช้ reverse proxy ยังไงเหรอครับ แล้ว cache แบบไหนเร็วกว่าเหรอครับ
พอดีผมเคยลง reverse proxy โดยเอาตัว nginx มาลงอยู่ แต่ยังไม่เข้าใจเรื่องการปรับให้มัน cache อะครับ ตอนแรกที่ใส่เพราะเข้าใจว่าช่วยให้มันลดภาระการ connect จาก client ที่ใช้ net ช้าๆครับ
แค่ set ตามแบบที่เจอใน google ลักษณะนี้อะครับ ไม่แน่ใจว่าถ้าจะให้มัน cache เยอะขึ้นนี่ต้องปรับตัวไหน แล้วพวก reverse proxy นี่มันมีตั้งเวลาในการ clear cache ด้วยรึเปล่าครับ
สำหรับผม ถ้าจะ cache ขอแยก เป็นสองส่วนครับ ส่วนของ dynamic และ static
การเอา nginx มาวางหน้า dynamic page ไม่ได้ช่วย เรื่อง caching เท่าไรครับ
ทางทีดีที่สุด ควรแยก dynamic/static ออกจากกันให้ได้ จะดีที่สุดครับ
[quote author=รับดูระบบ server link=topic=28844.msg270058#msg270058 date=1279112817]
สำหรับผม ถ้าจะ cache ขอแยก เป็นสองส่วนครับ ส่วนของ dynamic และ static
การเอา nginx มาวางหน้า dynamic page ไม่ได้ช่วย เรื่อง caching เท่าไรครับ
ทางทีดีที่สุด ควรแยก dynamic/static ออกจากกันให้ได้ จะดีที่สุดครับ
www.sanook.com เว็บนี้ cache แบบไหนครับ พอจะดูออกบ้างป่ะครับผม
เว็บใหญ่ๆ แบบนี้น่าจะ cache ย่อยเป็นส่วนๆ และน่าใช้ load balance ช่วยมั้ง