WP Object Cache ใน WordPress

ใครที่ใช้ WordPress แบบหนักหน่วง traffic เยอะ หรือมีหลายไซต์รันอยู่ด้วยกัน คงต้องสนใจเรื่องการปรับปรุง performance ของไซต์ และวิธีที่นิยมกันคือ การ cache object ในหน้า WordPress เพื่อให้หน้าเพจสามารถโหลดได้เร็วขึ้น บทความนี้จะพูดถึง WP Object Cache

WP Object Cache

เป็น class ที่ใช้ cache object ใน WordPress เราจะเอาไป cache object หรือ query ก็ได้ โดยปกติ มันจะเป็นการ cache ณ ช่วงเวลาหนึ่ง (non-persistent cache) ถ้าเราอยากให้มัน cache แล้วเก็บไว้ได้ ต้อง install พวก persistent cache plugin ไปด้วย เช่น memcache

ใน WP Object Cache มีฟังก์ชั่นที่เรียกใช้งาน โดยส่วนใหญ่จะรับ pamareter ดังต่อไปนี้
$key = ชื่อคีย์ที่ต้องการใช้
$data = ข้อมูลที่ต้องการ cache
$group = เป็น optional เพื่อให้สามารถตั้งชื่อคีย์เดียวกันใน group ต่างๆ ได้
$expire = เป็น optional ตั้งเวลาให้ cache หมดอายุ มีหน่วยเป็นวินาที (default เป็น 0)

wp_cache_add( $key, $data, $group, $expire )

ใช้ add key ที่ยังไม่มีอยู่ ถ้ามีอยู่แล้ว จะ return false

wp_cache_set( $key, $data, $group, $expire )

ใช้ add key ที่ยังไม่มีอยู่ ถ้ามีอยู่แล้ว จะเขียนทับคีย์เดิม

wp_cache_get( $key, $group )

เรียกใช้ value ใน key ถ้าไม่มี key นี้อยู่ จะ return false

wp_cache_delete( $key, $group )

เคลียร์ข้อมูลใน key

wp_cache_replace( $key, $data, $group, $expire )

ใช้งานเหมือน wp_cache_set แต่ต่างกันตรงที่ ถ้าไม่มี key อยู่ ก็จะ return false และไม่สร้าง key ใหม่ให้

wp_cache_flush()

เคลียร์ cache ทั้งหมด

wp_cache_add_non_persistent_groups($groups)

Cache ที่ต้องการให้อยู่ในช่วงเวลาหนึ่ง แม้จะมี persistent cache อยู่ก็ตาม

ถ้าหากอยากให้ cache อยู่ตลอด โดยที่ไม่ต้องมี persistent cache ติดตั้งอยู่ใน server ให้เลือกใช้ Transient API แทน ซึ่งจะกล่าวถึงในบทความถัดไป

อ่านเรื่อง WP Object Cache เพิ่มเติมได้ใน Codex


Mils Burasakorn

Mils Burasakorn