Thursday, 19 September 2024

Server Redis ติดตั้งเพื่อทำ cache ให้ WordPress

Server Redis

Server Redis แนะนำการติดตั้ง Cache สำหรับ WordPress โดยในการแนะนำการติดตั้งทางอินดี้ได้ใช้ web control panel ที่ชื่อว่า HestiaCP และ WordPress เป็นการใช้งาน Cache ให้กับ website ของเรา เพื่อให้เว็บไม่อืด โดยรายละเอียดของการติดตั้ง Redis จะอธิบายให้ในรายละเอียดของบทความนี้ ซึ่งเป็นการติดตั้งง่ายๆแบบไม่ต้องปรับแต่งอะไรมากมาย ใช้ความรู้ด้าน linux นิดหน่อยก็สามารถใช้งาน Redis ได้แล้ว

Server Redis คืออะไร

Redis เป็น in-memory data structure store หรือ  ระบบเก็บข้อมูลแบบกึ่งมีโครงสร้าง ที่ทำงานบน Ram หรือจะมองอีกมุมมันคือ NoSQL ก็ว่าได้ การเก็บข้อมูลของมันคืออธิบายง่ายๆคือ จะเก็บข้อมูลมาไว้บน RAM ทำให้ข้อมูลหน้าเว็บที่ใช้งานบ่อยๆ ก็จะถูกดึงออกมาจาก RAM เลย ทำให้ไม่ต้องไป query ที่ database บ่อยๆ แน่นอนความเร็วในการเข้าถึงก็มีดีอยู่แล้ว และที่สำคัญเป็นการเก็บ cache แบบลบได้ หายได้ ในช่วงเวลาหนึ่งๆ

ด้วยเหตุเบื่องต้นที่ว่า มันเก็บของอยู่ใน RAM จึงทำให้มันได้เปรียบเรื่องความเร็ว ทั้ง Read, Write, Update หรือ Delete โดยส่วนมากจะนิยมใช้ Redis ในการเก็บข้อมูล ที่ไม่ใช่ core หลักของการเก็บข้อมูล หรือ ทำพวก temp หรือ cashing ต่าง ๆ ให้เข้าถึงไว ๆ

จากข้อดีที่กล่าวมาทั้งหมดทำให้ทางอินดี้สนใจที่จะเอา Redis มาใช้งานเป็น cache ให้กับ WordPress และ ได้ใช้งานจริงมาซักพักแล้ว ประมาณ 6 เดือน พบว่ามีประสิทธิภาพดีมากกับการใช้งาน VPS ที่ RAM 1G ขึ้นไป

Server Redis ข้อดี 

  • ใช้งานง่าย
  • โครตไว
  • ใช้งานได้หลากหลาย

Server Redis ข้อเสีย

  • ข้อมูลอาจหายง่ายๆ ถ้าทำอะไรพลาด
  • ถ้าทำระบบซับซ้อนมากๆ อาจจะทำให้สับสนได้

ขั้นตอนการติดตั้ง Redis

โดยการติดตั้ง Redis ของทางอินดี้มีดังนี้ Linux Server เป็น Debian 10 และ ใช้ Web control panel เป็น hestiacp โดยเรื่อง HestiaCP ทางอินดี้ได้เขียนบทความทั้งหมดเอาไว้แล้ว สามารถไปอ่านย้อนหลังบทความได้ที่ HestiaCP โดย VPS ที่ใช้ทดสอบการติดตั้ง และ ใช้งานจริงมาคือ VPS RAM 1G ของทาง Digital Ocean โดยอธิบายขั้นตอนการติดตั้งดังนี้

  • การติดตั้ง Redis
sudo apt install redis-server
  • หลังจากรัน SSH ดำเนินการติดตั้งตาม Step ที่เห็นในหน้าจอติดตั้ง อันนี้ง่ายๆมาก
  • ทำการติดตั้ง redis php extension
sudo apt install php-redis
  • ดำเนินการ Restart Service ยกตัวอย่าง Hestia ของอินดี้ใช้ PHP 8.0 ก็จะใช้ SSH ดั้งนี้
sudo systemctl restart redis.service php8.0-fpm.service
  • ข้อมูลอ้างอิงการติดตั้ง สามารถอ่านเพื่อเติมได้ที่ Forum ของ HestiaCP ในเรื่องของการติดตั้ง Redis Memcached / redis
  • ขั้นตอนการทดสอบว่า Redis ที่ติดตั้งสามารถใช้งานได้หรือไม่ ให้ Run Shell : redis-cli ping แล้ว output จะได้ PONG เท่านี้ก็พร้อมใช้งานแล้ว
redis-cli ping
OutPut: PONG

การติดตั้ง Redis ให้กับ WordPress

โดยอธิบายขั้นตอนการติดตั้ง Redis ให้กับ WordPress ดังนี้

  • Download WordPress Pligins Redis Object Cache ทำการติดตั้ง Plugins และ Active ให้เรียบร้อย
  • หาโปรแกรมที่สามารถเข้าไปแก้ไขไฟล์ wp-config.php หรือ ถ้าใช้ HestiaCP ก็สามารถเข้าไปที่ File manager จัดการ Config ผ่านหน้าเว็บได้เลย
define('WP_CACHE', true);
define('WP_CACHE_KEY_SALT', 'indydiary.com');
define( 'WP_REDIS_HOST', '127.0.0.1');
define( 'WP_REDIS_PORT', 6379);
define( 'WP_REDIS_DATABASE', 0);
  • define(‘WP_CACHE_KEY_SALT’, ‘indydiary.com’); ตรงนี้แก้เป็นชื่อเว็บของเราได้เลย
  • define( ‘WP_REDIS_PORT’, 6379); เป็น Port ที่ใช้ กรณี 1 VPS มีหลายเว็บๆ แนะนำขั้นตอนการการติดตั้งหัวข้อต่อไป แต่ถ้าแนะนำ 1 VPS ให้ติดตั้ง Redis กับ 1 เว็บ จะดีกว่าเพราะไม่วุ่นวายเรื่อง Code มากมาย
  • ไปที่เมนู WordPress Setting > Redis
redis คือ
  • จากรูปผลการ setup ถ้า status เป็น Connected เราก็จะใช้งาน Cache Redis ได้แล้ว
  • กรณีต้องการลบ Cache ออก ก็สามารถกดปุ่ม Flush Cache ได้เลย

การปรับแต่งกรณี 1 VPS มีหลายเว็บ

การปรับแต่งกรณีที่ 1 VPS Server มีหลาย Domain หรือ หลายๆเว็บ โดยการปรับแต่งมีคำแนะนำต่อไปนี้

  • การติดตั้ง Redis ให้กับหลายๆ Server หรือ หลายๆเว็บ ให้ทำตามดังนี้ SETTING UP MULTIPLE SERVER INSTANCES ON A LINUX HOST หรือ ที่บทความนี้ How to run multiple Redis instances on Ubuntu
  • ตัว WordPress Database Frefix ปกติเราจะติดตั้งโดยใช้ Default เป็น “WP_” แนะนำให้แก้เป็นชื่ออื่นเพราะเวลารัน Redis แล้วหน้าเว็บจะ cache มั่วไปหมด
  • ทางอินดี้แนะนำให้ติดตั้งแยก VPS ไปเลยดีกว่าครับ 1 เว็บ 1 Redis อันนี้ Config ง่ายสุดแล้วไม่ต้องไปยุ่งกับ Shell ของ Linux มาก และ ตอนใช้งานจริงไม่ปวดหัวมาก

8 Comments

ลองทำตามแล้วติดตั้งและใช้งานไม่ยากเลยขอบคุณนะ

ดีจังเลยที่บทความของเราช่วยคุณได้ ขอบคุณมาก

It's ME on 11/04/2021 09:41

สอบถามเพิ่มเติมหน่อยครับ เว็บ indydiary.com ที่ผูกไว้กับ cloudflare นั้นได้มีการตั้งค่า cache ไว้ด้วยหรือเปล่าครับ ถ้ามี ไม่ทราบว่าตั้งไว้อย่างไรบ้างเหรอครับ พอดีอยากจะตั้งตาม เพราะเว็บตอบสนองได้เร็วมากเลยครับ ขอบคุณครับ

ขอบคุณที่ติดตาม
1. โดยทาง indydiary.com ได้ใช้บริการ Server Digital ocean ที่สิงคโปร์ กับ Cloudflare ตั้งค่า cache ตามบทความนี้เลย CloudFlare Caching Web จัดการแคชในคลาวแฟร์ EP7
2. ใช้ hestiaCP ติดตั้งแบบ custom โดยลงแค่ nginx เพื่อ enable flast cache บทความนี้ HestiaCP V1.4 มีอะไร Update บ้าง
3. ติดตั้ง redis ตามบทความนี้เลย Server Redis ติดตั้งเพื่อทำ cache ให้ WordPress
โดยทั้งหมดจะเป็นการตั้งค่าโดย default ของ Software เลย เพราะตั้งแบบ advance ไม่เป็นเหมือนกัน

It's ME on 11/04/2021 09:41

ขออนุญาตสอบถามเพิ่มเติมครับ สำหรับการใช้ NGINX FastCGI cache นั้น มันมีวิธีเคลียร์แคชผ่าน wordpress โดยตรงไหมครับ เพราะปกติต้องไปกดเคลียร์ (Flush) ใน hestiaCP ซึ่งผมว่ามันลำบากพอควรที่ต้องล๊อกอินไปมาอยู่เสมอเพื่อที่จะเคลียร์ ขอบคุณครับ

ของตัว web indydiary ตั้ง Fast cache ไว้แค่ 5 นาทีเองจ้า ส่วน cache อื่นๆก็ default ที่ให้มาเลย (เหตุผลเพราะติด google ads) และจากประสบการณ์ที่ผ่านมาเวลา Update บทความไม่เคยไปลบ cache ออกเลยไม่ว่าจะเป็น Redis, Cloudflare และ fast cache ยกเว้นตอนแก้ ui ของหน้าเว็บเท่านั้น

It's ME on 11/04/2021 09:41

ขอถามต่อนิดนึงครับ การตั้ง cache มีผลดีหรือไม่ดีต่อ google ads อย่างไรเหรอครับ

อาจจะทำให้ ads แสดงผลช้า

Comments are closed.

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

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save