Server

Redis คืออะไร? ใช้ทำอะไร และควรเผื่อสเปกเท่าไหร่

อัปเดต 2026-08-22อ่าน ~8 นาที

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

บทความนี้อธิบายว่า Redis คืออะไรจริง ๆ ทำไมมันถึงเร็ว และที่สำคัญกว่าคือมันแลกมากับอะไร ใช้ทำอะไรได้บ้าง ต่างจาก Memcached ตรงไหน ใส่แล้วเว็บเร็วขึ้นจริงไหม ต้องเผื่อสเปกเท่าไหร่ และเรื่องความปลอดภัยที่พลาดแล้วเสียหายจริงมาแล้วหลายราย

Redis คืออะไร

Redis คือที่เก็บข้อมูลแบบคีย์-ค่า (key-value) ที่เก็บข้อมูลทั้งหมดไว้ในหน่วยความจำหลักของเครื่อง หรือที่เรียกกันว่าแรม แทนที่จะเก็บบนดิสก์เหมือนฐานข้อมูลทั่วไป การอ่านหรือเขียนข้อมูลหนึ่งชิ้นจึงเป็นแค่การหยิบของจากแรม ซึ่งเร็วกว่าการวิ่งไปหาข้อมูลบนดิสก์อย่างมีนัยสำคัญ

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

แต่ Redis ไม่ได้เก็บได้แค่ข้อความธรรมดา มันมีโครงสร้างข้อมูลในตัวหลายแบบ ทั้งรายการ (list), เซต, ตารางแฮช และเซตแบบเรียงลำดับ (sorted set) ซึ่งเป็นเหตุผลที่คนเอามันไปทำงานได้หลากหลายกว่าคำว่า "แคช" อย่างเดียว เช่นทำคิวงานหรือทำตารางอันดับก็ได้จากโครงสร้างที่มีอยู่แล้ว

💡 สรุปสั้น: Redis = ที่เก็บข้อมูลในแรม เรียกด้วยชื่อคีย์ ได้ค่ากลับมาทันที ไม่ใช่ฐานข้อมูลหลักที่ใช้แทน MySQL และไม่ใช่บริการคลาวด์ แต่เป็นโปรแกรมที่ติดตั้งไว้บนเซิร์ฟเวอร์ของคุณเอง

ทำไมถึงเร็ว และแลกมากับอะไร

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

ทีนี้มาถึงส่วนที่ต้องพูดให้ตรง เพราะความเร็วนี้ไม่ได้ฟรี ข้อแลกเปลี่ยนข้อแรกคือ ข้อมูลอยู่ในแรมแปลว่าแรมหมดเมื่อไหร่คือปัญหาทันที ถ้าคุณไม่ได้กำหนดเพดานหน่วยความจำไว้ Redis จะเก็บข้อมูลเพิ่มไปเรื่อย ๆ จนแรมของเครื่องเต็ม แล้วระบบปฏิบัติการจะเริ่มปิดกระบวนการที่กินแรมมากที่สุดทิ้ง ซึ่งก็คือ Redis เองหรือแย่กว่านั้นคือฐานข้อมูลหลักของคุณ

ข้อแลกเปลี่ยนข้อที่สองสำคัญกว่า คือถ้าไม่ตั้งค่าให้เขียนข้อมูลลงดิสก์ ข้อมูลทั้งหมดจะหายเมื่อรีสตาร์ต Redis มีกลไกเขียนลงดิสก์ให้เลือกสองแบบ แบบแรกคือบันทึกภาพรวมของข้อมูลเป็นช่วง ๆ (snapshot) ซึ่งค่าเริ่มต้นมาตรฐานเปิดไว้อยู่ แบบที่สองคือบันทึกทุกคำสั่งที่เขียนต่อท้ายไฟล์ (append-only) ซึ่งค่าเริ่มต้นปิดอยู่ ผลคือถ้าใช้แค่ค่าเริ่มต้นแล้วเครื่องดับ ข้อมูลที่เขียนหลังการบันทึกครั้งล่าสุดจะหายไป

พูดให้ชัดกว่านั้น: ถ้าตั้งค่าปิดการเขียนลงดิสก์ไว้ (ซึ่งคอนเทนเนอร์สำเร็จรูปบางตัวตั้งมาแบบนั้น) การรีสตาร์ตเครื่องหรือรีสตาร์ตบริการเพียงครั้งเดียวก็เท่ากับข้อมูลใน Redis หายทั้งหมด ถ้าใช้มันเป็นแคชล้วน เรื่องนี้ไม่ใช่ปัญหาเพราะสร้างใหม่จากฐานข้อมูลได้ แต่ถ้าเผลอเอาไปเก็บของที่หายไม่ได้ นี่คือปัญหาใหญ่

💡 ก่อนใช้จริง ให้ตอบตัวเองให้ได้ก่อนสองข้อ: หนึ่ง ข้อมูลใน Redis ถ้าหายทั้งหมดตอนนี้ ระบบยังทำงานต่อได้ไหม และสอง ตั้งเพดานหน่วยความจำ (maxmemory) พร้อมกติกาการไล่ข้อมูลเก่าออกไว้แล้วหรือยัง สองข้อนี้ป้องกันเหตุร้ายแรงส่วนใหญ่ได้

Redis ใช้ทำอะไรบ้าง

คนส่วนใหญ่รู้จัก Redis ในฐานะแคช แต่จริง ๆ มันถูกใช้กว้างกว่านั้นมาก เพราะโครงสร้างข้อมูลที่มีมาให้ทำให้งานหลายอย่างเขียนได้ในไม่กี่คำสั่ง ตารางนี้คืองานที่พบบ่อยที่สุดในระบบจริง

งานทำอะไรทำไมถึงเหมาะกับ Redis
Cacheเก็บผลลัพธ์ที่คำนวณหรือดึงจากฐานข้อมูลแล้วไว้ชั่วคราว คำขอเดิมครั้งถัดไปตอบจากแรมได้เลยตั้งเวลาหมดอายุต่อคีย์ได้ในตัว และข้อมูลหายก็สร้างใหม่จากฐานข้อมูลได้เสมอ
Session ผู้ใช้เก็บสถานะการเข้าสู่ระบบของผู้ใช้แต่ละคน เพื่อไม่ต้องตรวจสอบใหม่ทุกคำขออ่านบ่อยมาก ข้อมูลชิ้นเล็ก และมีวันหมดอายุตามธรรมชาติอยู่แล้ว
คิวงานพักงานที่ไม่ต้องทำทันที เช่นส่งอีเมลหรือย่อรูป ไว้ให้ตัวประมวลผลเบื้องหลังมาหยิบไปทำมีโครงสร้างรายการที่ใส่ท้ายหยิบหัวได้โดยตรง ไม่ต้องเขียนกลไกเอง
Rate limitนับจำนวนคำขอต่อผู้ใช้หรือต่อ IP ในช่วงเวลาหนึ่ง เพื่อจำกัดการยิงซ้ำเพิ่มค่าตัวนับและตั้งเวลาหมดอายุได้ในคำสั่งเดียว เร็วพอที่จะทำทุกคำขอ
Leaderboardจัดอันดับคะแนนผู้เล่นหรือรายการยอดนิยม แล้วดึงอันดับต้น ๆ ออกมาแสดงเซตแบบเรียงลำดับจัดอันดับให้อัตโนมัติ ไม่ต้องเรียงใหม่ทุกครั้งที่มีคะแนนเข้า
ล็อกข้ามกระบวนการกันไม่ให้งานเดียวกันถูกทำซ้ำพร้อมกันจากหลายเครื่องหรือหลายกระบวนการทุกตัวมองเห็นค่าเดียวกันจากศูนย์กลาง และตั้งอายุของล็อกได้
💡 สังเกตว่าทุกงานในตารางมีลักษณะร่วมกันคือ ข้อมูลชิ้นเล็ก อ่านหรือเขียนบ่อยมาก และยอมให้หายได้โดยไม่เสียหายถาวร ถ้างานของคุณไม่เข้าเงื่อนไขสามข้อนี้ Redis อาจไม่ใช่คำตอบ

Redis ไม่ใช่ฐานข้อมูลหลัก

ประเด็นนี้ต้องพูดให้ชัด เพราะเป็นความเข้าใจผิดที่ทำให้ระบบพังจริง โดยทั่วไป Redis ถูกใช้ "คู่กับ" ฐานข้อมูลจริงอย่าง MySQL หรือ PostgreSQL ไม่ใช่ใช้แทน ข้อมูลที่เป็นความจริงของระบบ เช่นบัญชีผู้ใช้ คำสั่งซื้อ หรือรายการสินค้า ยังต้องอยู่ในฐานข้อมูลหลักที่เขียนลงดิสก์ทุกครั้งที่มีธุรกรรม

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

  • ฐานข้อมูลหลักคือแหล่งความจริง — ข้อมูลใน Redis ถือเป็นสำเนาที่ทิ้งได้เสมอ
  • อย่าเขียนข้อมูลสำคัญลง Redis อย่างเดียวโดยไม่ผ่านฐานข้อมูล เพราะไม่มีการรับประกันความคงทนระดับเดียวกัน
  • Redis ไม่มีการเชื่อมตาราง ไม่มีการค้นหาที่ซับซ้อนแบบ SQL การหาข้อมูลตามเงื่อนไขหลายชั้นไม่ใช่งานของมัน
  • ระวังข้อมูลใน Redis ไม่ตรงกับฐานข้อมูล — เมื่อแก้ข้อมูลในฐานข้อมูลแล้ว ต้องลบหรืออัปเดตคีย์ที่เกี่ยวข้องด้วย ไม่งั้นผู้ใช้จะเห็นข้อมูลเก่า
  • ตั้งวันหมดอายุให้คีย์เสมอเมื่อใช้เป็นแคช เพื่อให้ข้อมูลเก่าหลุดออกไปเองแม้จะลืมลบ
  • ออกแบบให้ระบบยังทำงานได้แม้ Redis ล่ม — ถ้าเชื่อมต่อไม่ได้ควรตกไปอ่านฐานข้อมูลหลักแทน ไม่ใช่ขึ้นหน้าเออเรอร์
💡 ถ้าตอบไม่ได้ว่า "ข้อมูลชิ้นนี้ถ้าหายจะสร้างกลับมาจากไหน" แสดงว่ายังไม่ควรเก็บมันไว้ใน Redis อย่างเดียว

Redis กับ Memcached ต่างกันยังไง

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

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

หัวข้อRedisMemcached
ชนิดข้อมูลข้อความ รายการ เซต ตารางแฮช และเซตแบบเรียงลำดับคู่คีย์-ค่าแบบเรียบง่ายเป็นหลัก
เขียนลงดิสก์ทำได้ ทั้งแบบ snapshot และแบบบันทึกทุกคำสั่งต่อท้ายไม่มี ข้อมูลอยู่ในแรมล้วน หายเมื่อรีสตาร์ต
ทำสำเนา/สำรองมีการทำสำเนาไปเครื่องอื่นในตัวไม่มีในตัว ต้องอาศัยฝั่งแอปจัดการเอง
การใช้หลายคอร์ประมวลผลคำสั่งด้วยเธรดหลักเป็นหลักรองรับหลายเธรดมาตั้งแต่ต้น
ความสามารถเสริมระบบส่งข้อความ (pub/sub) สคริปต์ ธุรกรรม โครงสร้างสำหรับคิวและอันดับไม่มี เน้นทำแคชอย่างเดียวให้ดีที่สุด
เหมาะกับงานหลากหลายกว่าแค่แคช และงานที่อยากให้ข้อมูลรอดข้ามการรีสตาร์ตแคชล้วน ๆ ที่อยากได้ของเรียบง่าย ตั้งค่าน้อยที่สุด
💡 ทั้งคู่กินแรมเป็นทรัพยากรหลักเหมือนกัน การเลือกตัวไหนจึงไม่ได้ทำให้ประหยัดแรมลง สิ่งที่กำหนดคือขนาดข้อมูลที่คุณเก็บ ไม่ใช่ยี่ห้อของซอฟต์แวร์

ใส่ Redis แล้วเว็บเร็วขึ้นจริงไหม

ตอบตรง ๆ ว่า ช่วยเมื่อคอขวดของคุณคือการอ่านข้อมูลชุดเดิมซ้ำ ๆ เท่านั้น ถ้าเว็บของคุณต้องคิวรีฐานข้อมูลชุดเดียวกันซ้ำหลายพันครั้งต่อนาทีเพื่อตอบคำขอที่ให้ผลเหมือนกัน การเก็บผลไว้ในแรมแล้วตอบจากตรงนั้นย่อมลดงานของฐานข้อมูลลงได้ชัดเจน นี่คือกรณีที่ Redis ทำงานได้ตรงจุด

แต่ถ้าคอขวดอยู่ที่อื่น Redis ไม่ได้ช่วยอะไรเลย และยังเพิ่มของให้ดูแลอีกหนึ่งตัว ที่พบบ่อยคือเว็บช้าเพราะรูปภาพใหญ่เกินไป เพราะสคริปต์ฝั่งหน้าเว็บเยอะเกินจำเป็น เพราะคิวรีฐานข้อมูลตัวเดียวเขียนไว้ไม่ดีจนกินเวลาหลายวินาที หรือเพราะเครื่องแรมเต็มจนระบบต้องสลับข้อมูลไปมากับดิสก์ ทั้งหมดนี้แก้ที่ต้นเหตุตรง ๆ ได้ผลกว่าการเพิ่ม Redis เข้าไป

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

  • ช่วยได้: หน้าที่ทุกคนเห็นเหมือนกันและเนื้อหาไม่เปลี่ยนบ่อย แต่ต้องคิวรีฐานข้อมูลใหม่ทุกครั้ง
  • ช่วยได้: ข้อมูลที่ต้องอ่านทุกคำขอ เช่นสถานะการเข้าสู่ระบบหรือค่าตั้งค่าของเว็บ
  • ช่วยได้: งานที่ทำให้ผู้ใช้ต้องรอ ทั้งที่ยกไปทำเบื้องหลังผ่านคิวได้
  • ไม่ช่วย: เว็บช้าเพราะไฟล์ภาพหรือสคริปต์ฝั่งหน้าเว็บหนักเกินไป
  • ไม่ช่วย: คิวรีตัวเดียวที่เขียนไว้ไม่ดีหรือขาดดัชนี ควรแก้คิวรีหรือเพิ่มดัชนีก่อน
  • ไม่ช่วย: เครื่องแรมไม่พออยู่แล้ว — ใส่ Redis เข้าไปยิ่งแย่งแรมเพิ่ม
  • ไม่ช่วย: ข้อมูลที่แต่ละคนเห็นไม่เหมือนกันและเปลี่ยนทุกครั้ง เพราะแคชแทบไม่เคยถูกใช้ซ้ำ
💡 อย่าใส่ Redis เพราะเห็นคนอื่นใส่ — ให้วัดก่อนว่าเวลาหายไปตรงไหน แล้วค่อยตัดสินใจ การเพิ่มบริการหนึ่งตัวหมายถึงเพิ่มจุดที่พังได้อีกจุด และเพิ่มแรมที่ต้องเผื่ออีกก้อน

สเปกที่ควรเผื่อ

ตัว Redis เองแทบไม่กิน CPU สิ่งที่ต้องคิดคือแรม เพราะข้อมูลทั้งหมดอยู่ในนั้น หลักคิดง่าย ๆ คือประเมินขนาดข้อมูลที่จะเก็บ แล้วเผื่อไว้อีกส่วนหนึ่งสำหรับค่าใช้จ่ายภายในของตัวโปรแกรมและช่วงที่มันบันทึกข้อมูลลงดิสก์ และอย่าลืมว่าฐานข้อมูลหลักกับตัวเว็บก็กินแรมบนเครื่องเดียวกันอยู่แล้ว ตารางด้านล่างเทียบกับแพ็กเกจ VPS ของ Plusweb ทุกตัวมี 1 Public IPv4 ในตัว ตัวเลขในวงเล็บคือราคาต่อเดือนเมื่อชำระรายปี

ลักษณะการใช้งานข้อมูลใน Redis (ประมาณ)แพ็กเกจที่พอเริ่มได้ราคา/เดือน (รายปี)
ทดลองใช้ หรือเก็บ session เว็บเล็ก ๆหลักสิบ MBVPS-00 — 1 vCore / 1 GB / 15 GB150฿ (120฿)
เว็บขนาดกลาง ใช้แคชผลคิวรีร่วมกับฐานข้อมูลบนเครื่องเดียวกันราว 100–300 MBVPS-01 — 1 vCore / 3 GB / 30 GB250฿ (200฿)
เว็บที่คนเข้าสม่ำเสมอ มีทั้งแคช session และคิวงานราว 300 MB–1 GBVPS-02 — 2 vCores / 4 GB / 60 GB350฿ (280฿)
หลายบริการบนเครื่องเดียว หรือแคชชุดข้อมูลก้อนใหญ่1–2 GB ขึ้นไปVPS-03 — 4 vCores / 8 GB / 100 GB600฿ (480฿)
💡 ตั้งเพดานหน่วยความจำ (maxmemory) ให้ Redis เสมอ พร้อมเลือกกติกาว่าจะไล่ข้อมูลเก่าออกยังไงเมื่อเต็ม ถ้าไม่ตั้ง Redis จะกินแรมเพิ่มไปเรื่อย ๆ จนระบบปฏิบัติการปิดกระบวนการที่กินแรมมากที่สุดทิ้ง ซึ่งอาจเป็นฐานข้อมูลหลักของคุณเอง — เหตุนี้เกิดบ่อยกว่าที่คิดบนเครื่องแรมน้อย

ความปลอดภัย: เรื่องที่ห้ามพลาดเด็ดขาด

ข้อนี้สำคัญที่สุดในบทความ: ห้ามเปิดพอร์ตของ Redis ออกสู่อินเทอร์เน็ตโดยไม่มีรหัสผ่านเด็ดขาด พอร์ตมาตรฐานของมันคือ 6379 ซึ่งเป็นหมายเลขที่รู้กันทั่วโลก มีสคริปต์อัตโนมัติไล่สแกนหาเซิร์ฟเวอร์ที่เปิดพอร์ตนี้ทิ้งไว้ตลอดเวลา เครื่องที่เผลอเปิดไว้มักถูกเจอภายในเวลาไม่นานหลังขึ้นออนไลน์

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

  • ให้ Redis ฟังเฉพาะภายในเครื่อง (127.0.0.1) ถ้าแอปที่ใช้งานอยู่บนเครื่องเดียวกัน ซึ่งเป็นกรณีส่วนใหญ่
  • ตั้งรหัสผ่านให้ Redis เสมอ แม้จะเปิดเฉพาะภายในเครื่องก็ควรตั้งไว้เป็นชั้นป้องกันสำรอง
  • ปิดพอร์ต 6379 ที่ไฟร์วอลล์ อย่าพึ่งการตั้งค่าในตัว Redis อย่างเดียว
  • ถ้ารันด้วยคอนเทนเนอร์ ระวังการผูกพอร์ตออกมาที่ IP สาธารณะโดยไม่ตั้งใจ — ให้ผูกกับภายในเครื่องเท่านั้น
  • ถ้าจำเป็นต้องให้เครื่องอื่นเชื่อมต่อจริง ๆ ให้ใช้เครือข่ายภายในหรือช่องทางที่เข้ารหัส ไม่ใช่เปิดพอร์ตออกอินเทอร์เน็ตตรง ๆ
  • จำกัดสิทธิ์ของบัญชีที่แอปใช้เชื่อมต่อ ให้ใช้ได้เท่าที่จำเป็น ไม่ใช่สิทธิ์เต็มทุกคำสั่ง
  • อัปเดตเวอร์ชันสม่ำเสมอ และอย่ารัน Redis ด้วยสิทธิ์ root โดยไม่จำเป็น
💡 Redis รุ่นใหม่มีโหมดป้องกันที่ช่วยกันการเชื่อมต่อจากภายนอกเมื่อยังไม่ได้ตั้งรหัสผ่าน ซึ่งช่วยได้มาก แต่อย่าถือว่าเป็นเกราะเพียงชั้นเดียว เพราะคู่มือติดตั้งบางฉบับหรือไฟล์ตั้งค่าสำเร็จรูปบางตัวสั่งปิดโหมดนี้ทิ้งเพื่อความสะดวก แล้วคนทำตามก็ไม่รู้ตัว

สรุป

Redis คือที่เก็บข้อมูลคีย์-ค่าที่วางข้อมูลไว้ในแรม จึงอ่านเขียนได้เร็วมาก เหมาะกับข้อมูลชิ้นเล็กที่ถูกเรียกซ้ำบ่อย ๆ อย่างแคช session คิวงาน การจำกัดอัตราคำขอ และตารางอันดับ แต่มันไม่ใช่ฐานข้อมูลหลัก และโดยทั่วไปใช้คู่กับ MySQL หรือฐานข้อมูลจริงตัวอื่นเสมอ

สิ่งที่ต้องจำให้ขึ้นใจมีสามข้อ: ข้อมูลอยู่ในแรม แรมหมดคือปัญหาจึงต้องตั้งเพดานไว้ · ถ้าไม่ตั้งค่าให้เขียนลงดิสก์ ข้อมูลหายเมื่อรีสตาร์ต · และห้ามเปิดพอร์ตออกอินเทอร์เน็ตโดยไม่มีรหัสผ่าน ส่วนคำถามว่าใส่แล้วเว็บเร็วขึ้นไหม คำตอบคือช่วยเมื่อคอขวดคือการอ่านข้อมูลซ้ำ ๆ เท่านั้น ถ้าคอขวดอยู่ที่อื่นก็ต้องแก้ที่ตรงนั้น

ในทางปฏิบัติ คนส่วนใหญ่ติดตั้ง Redis ด้วยคอนเทนเนอร์บนเครื่องเดียวกับแอป แล้วให้ Nginx อยู่หน้าสุดรับทราฟฟิกจากภายนอก ส่วน Redis อยู่ข้างในโดยไม่เปิดพอร์ตออกเลย ถ้ายังไม่คุ้นกับสองส่วนนี้ อ่าน Docker คืออะไร ประกอบ และถ้ายังไม่เคยมีเครื่องเป็นของตัวเอง เริ่มที่ VPS คืออะไร ก่อน เพราะการติดตั้ง Redis เองต้องมีสิทธิ์ root ซึ่งโฮสติ้งแบบแชร์ไม่เปิดให้

💡 ถ้าจะจำแค่ประโยคเดียว: Redis คือแคชที่ทิ้งได้ ไม่ใช่ตู้เซฟที่เก็บของสำคัญ — ออกแบบระบบให้มันหายได้โดยที่ทุกอย่างยังทำงานต่อ แล้วคุณจะใช้มันได้อย่างสบายใจ

อยากลง Redis บนเครื่องของคุณเอง?

VPS ของ Plusweb ให้สิทธิ์ root เต็มและ Public IPv4 ในตัว ติดตั้ง Redis คู่กับฐานข้อมูลบนเครื่องเดียวได้ เริ่มต้น 120฿/เดือน (รายปี)

คำถามที่พบบ่อย

Redis คืออะไรแบบสั้นที่สุด?

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

รีสตาร์ตแล้วข้อมูลใน Redis หายไหม?

ขึ้นกับการตั้งค่า ถ้าไม่ได้เปิดการเขียนข้อมูลลงดิสก์ไว้เลย ข้อมูลจะหายทั้งหมดเมื่อรีสตาร์ต ถ้าใช้ค่าเริ่มต้นมาตรฐานที่บันทึกภาพรวมเป็นช่วง ๆ ข้อมูลที่เขียนหลังการบันทึกครั้งล่าสุดจะหายไป ถ้าต้องการให้หายน้อยที่สุดต้องเปิดโหมดบันทึกทุกคำสั่งต่อท้ายเพิ่ม ซึ่งค่าเริ่มต้นปิดอยู่

Redis ใช้แทน MySQL ได้ไหม?

โดยทั่วไปไม่ควร Redis ออกแบบมาเพื่อการเข้าถึงข้อมูลชิ้นเล็กด้วยคีย์ให้เร็วที่สุด ไม่มีการเชื่อมตารางและการค้นหาแบบซับซ้อนอย่าง SQL อีกทั้งข้อมูลอยู่ในแรมซึ่งมีข้อจำกัดเรื่องขนาดและความคงทน รูปแบบที่ถูกต้องคือให้ฐานข้อมูลหลักเป็นแหล่งความจริง แล้วใช้ Redis เก็บสำเนาที่ทิ้งได้ไว้ตอบคำขอที่ซ้ำ ๆ

Redis กับ Memcached เลือกอันไหนดี?

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

ใส่ Redis แล้วเว็บจะเร็วขึ้นเลยไหม?

ไม่เสมอไป มันช่วยเมื่อคอขวดของคุณคือการอ่านข้อมูลชุดเดิมซ้ำ ๆ จากฐานข้อมูลเท่านั้น ถ้าเว็บช้าเพราะรูปภาพใหญ่ สคริปต์ฝั่งหน้าเว็บหนัก คิวรีเขียนไว้ไม่ดี หรือแรมของเครื่องไม่พออยู่แล้ว การใส่ Redis จะไม่ช่วยและยังเพิ่มของให้ดูแลอีกตัว ควรวัดก่อนว่าเวลาหายไปตรงไหนแล้วค่อยตัดสินใจ

รัน Redis บน VPS ต้องใช้แพ็กเกจไหน?

ให้ดูที่ขนาดข้อมูลที่จะเก็บในแรมเป็นหลัก เพราะตัว Redis เองแทบไม่กิน CPU ถ้าทดลองหรือเก็บ session เว็บเล็ก ๆ VPS-00 (1 vCore / 1 GB / 15 GB) ที่ 150฿ ต่อเดือนก็พอเริ่ม ถ้าใช้แคชร่วมกับฐานข้อมูลบนเครื่องเดียวกันแนะนำ VPS-01 (1 vCore / 3 GB / 30 GB) ขึ้นไป และถ้ามีหลายบริการพร้อมกันควรเป็น VPS-02 (2 vCores / 4 GB / 60 GB) หรือ VPS-03 (4 vCores / 8 GB / 100 GB)

GUIDES

บทความที่เกี่ยวข้อง

อ่านต่อในหัวข้อใกล้เคียง

ดูบทความทั้งหมด
MySQL คืออะไร? เข้าใจฐานข้อมูลยอดนิยมแบบไม่ต้องมีพื้นฐาน
Server

MySQL คืออะไร? เข้าใจฐานข้อมูลยอดนิยมแบบไม่ต้องมีพื้นฐาน

MySQL คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่เว็บทั่วโลกใช้เก็บข้อมูลมากที่สุดตัวหนึ่ง อ่านให้เข้าใจว่ามันคืออะไร เก็บข้อมูลยังไง ต่างจาก MariaDB ตรงไหน และควรรันบนโฮสติ้งหรือบน VPS

อ่านต่อ
Docker คืออะไร? อธิบายแบบเห็นภาพ พร้อมวิธีใช้จริงบน VPS
Automation & VPS

Docker คืออะไร? อธิบายแบบเห็นภาพ พร้อมวิธีใช้จริงบน VPS

Docker คือเครื่องมือที่ห่อแอปพร้อมทุกอย่างที่มันต้องใช้ไว้ในกล่องเดียว ทำให้รันที่ไหนก็ได้ผลเหมือนกัน อ่านให้เข้าใจศัพท์หลัก ความต่างจาก VM และเหตุผลที่คนเช่า VPS นิยมลง

อ่านต่อ
VPS คืออะไร? ใช้ทำอะไรได้บ้าง ฉบับเข้าใจง่าย
Cloud VPS

VPS คืออะไร? ใช้ทำอะไรได้บ้าง ฉบับเข้าใจง่าย

สรุปครบเรื่อง VPS — VPS server คืออะไร ทำงานยังไง Cloud VPS ต่างจาก VPS ทั่วไปตรงไหน ใช้ทำอะไรได้บ้าง เทียบกับ Shared Hosting และ Dedicated ใครควรใช้ และเริ่มต้นยังไงในปี 2026

อ่านต่อ