28 คะแนน โดย day1swhan 2025-10-28 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

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

การกำเนิดของสตอเรจแบบ Key-Value

  • หลังยุคปี 2000 เมื่อเข้าสู่ยุคเว็บ 2.0 บริษัทผู้ให้บริการเว็บต้องเผชิญกับสถานการณ์ที่ต้องรองรับจำนวนผู้ใช้งานมหาศาล
  • เพื่อรองรับทราฟฟิกมหาศาลนี้ จึงต้องการระบบกระจายขนาดใหญ่ที่เล็กแต่ราคาถูก แทนที่จะเป็นเซิร์ฟเวอร์เครื่องใหญ่ราคาแพง
  • โชคดีที่โครงสร้างข้อมูลส่วนใหญ่เรียบง่าย (เช่น ดึงข้อมูล userid = 1234)
  • การใช้ฐานข้อมูลเชิงสัมพันธ์ (RDBMS) นั้นหนักเกินไป แพงเกินไป และซับซ้อนเกินไป
  • ทฤษฎี CAP ปรากฏขึ้น
  • ถ้าอย่างนั้น ต่อให้ต้องทิ้งความสอดคล้อง ก็ขอรักษาความพร้อมใช้งานและความเร็วไว้
  • จึงเกิดฐานข้อมูลแบบง่ายที่ให้ key แล้วโยน value กลับมา (Memcached-2003, Amazon Dynamo-2007)

การกำเนิดของ Redis

  • ที่อิตาลี ดินแดนแห่งพาสตา นักพัฒนาชื่อ Salvatore Sanfilippo กำลังดำเนินสตาร์ตอัปชื่อ LLOOGG (สะกด Log ด้วยตัว o สองตัวถูกแล้ว)
  • LLOOGG ให้บริการติดตามผู้เยี่ยมชมเว็บไซต์แบบเรียลไทม์
  • แม้จะเป็นธุรกิจขนาดเล็ก แต่ก็มีผู้ใช้งานจริง
  • ในเวลานั้น การวิเคราะห์แบบเรียลไทม์เป็นงานที่ค่อนข้างยาก
  • ข้อมูลเริ่มสะสม → RDBMS เดิมค่อย ๆ ช้าลง → ไม่สามารถตอบสนองแบบเรียลไทม์ได้
  • หากต้องการการตอบสนองแบบเรียลไทม์ก็ต้องใช้หน่วยความจำ → แต่ Memcached ในตอนนั้นรองรับแค่ GET, PUT แบบง่ายในรูป string
  • ต้องการฟังก์ชันแบบ dictionary ที่ขยายขึ้นมาอีกหน่อย เช่น INCR, DECR, LIST แต่ไม่มี DB แบบนั้น? → งั้นก็สร้างเองซะเลย
  • จึงเกิดเวอร์ชันแรกที่ทำงานบน TCP server แบบเรียบง่ายสุด ๆ (ยังไม่มีฟีเจอร์ระดับสูงอย่างคลัสเตอร์, AOF, การทำสำเนาแบบ replication)

วิวัฒนาการของ Redis

  • Redis ไม่ได้ถือกำเนิดมาเพื่อเป็น แคช แต่เพื่อเป็น คลังเก็บโครงสร้างข้อมูลสำหรับการประมวลผลแบบเรียลไทม์
  • แต่แล้วผู้คนก็เริ่มนำมันไปใช้เป็นแคช
  • ความต้องการด้าน โครงสร้างข้อมูลที่ไปไกลกว่าแคช จากบรรดายักษ์ใหญ่เดิม (Facebook, Twitter, GitHub, Stack Overflow ฯลฯ) เพิ่มขึ้น
  • เริ่มถูกนำมาใช้ทีละน้อยจากฟังก์ชันเล็ก ๆ อย่างการเก็บเซสชัน การจัดการโทเคนล็อกอิน ตัวนับแบบเรียลไทม์ ระบบจัดอันดับ จำนวนไลก์
  • ฟังก์ชันและโครงสร้างข้อมูลต่าง ๆ ที่จำเป็นถูกเพิ่มเข้ามาอย่างค่อยเป็นค่อยไป (Sorted Set, HASH, Cluster, persistence...)
  • สุดท้ายมันก็กลายเป็น แพลตฟอร์มประมวลผลข้อมูล ที่ยืดหยุ่น

ชุมชน, UX และปรัชญาของนักพัฒนา

  • Redis ตั้งอยู่บนปรัชญาว่า ถึงจะมีฟีเจอร์มาก ก็ต้องไม่ซับซ้อน
  • เอกสารทางการมีตัวอย่างที่รันได้ทันทีบน CLI พร้อมคำอธิบายพฤติกรรมที่ชัดเจน
  • คำสั่งที่เข้าใจง่ายอย่าง SET, GET, LPUSH, ZADD, HGETALL เป็นต้น แค่กวาดตาดูเอกสารทางการครั้งเดียวก็พอจับความได้ทันทีว่าทำหน้าที่อะไร
  • ความตรงไปตรงมานี้ไม่ได้แค่ทำให้สะดวก แต่ยังช่วย ลดกำแพงทางจิตใจต่อเครื่องมือ และเพิ่มประสิทธิภาพการทำงานของนักพัฒนา
  • ความอเนกประสงค์ที่เกิดจากโครงสร้างแบบนี้ส่งผลดีต่อทั้งผู้ใช้ ผู้ให้บริการคลาวด์ และผู้มีส่วนร่วมในโอเพนซอร์ส
  • ในระบบนิเวศที่ประกอบขึ้นจากผลประโยชน์ร่วมกัน Redis จึงก้าวขึ้นมาเป็น มาตรฐานโดยพฤตินัยของ In-memory DB ผ่านการเลือกใช้ที่ ไม่ได้ถูกบังคับ

มองไปที่ระบบนิเวศของ Redis

  • Redis เริ่มต้นจากการเป็นวิธีสำหรับทำให้แนวคิดที่อาจดูธรรมดาอย่างการวิเคราะห์ผู้เยี่ยมชมแบบเรียลไทม์เกิดขึ้นได้จริง
  • มันทะลวงข้อจำกัดของวิธีเดิมอย่าง SQL (ช้าและแพง) ด้วยแนวทางใหม่
  • ไม่ใช่การใช้เส้นสายกับบริษัทคู่ค้า การบีบซัพพลายเออร์ การจูนฮาร์ดแวร์ หรือการจำกัดการใช้งานเพื่อเพิ่มประสิทธิภาพภายใต้กติกาเดิม
  • แต่มันคือการสร้าง กติกาใหม่ ว่าให้หน่วยความจำกลายเป็นองค์ประกอบหลักของฐานข้อมูล
  • หากจะออกแบบเครื่องมือด้วยตัวเอง เสนอแนวทางที่ไม่เคยมีมาก่อน และทำให้คนทั้งโลกยอมรับมันได้ ความรู้พื้นฐาน สำหรับการประยุกต์ใช้ย่อมสำคัญ
  • แค่ดู Amazon Dynamo ที่ออกแบบมาเพื่อแก้ปัญหาการเก็บตะกร้าสินค้า ก็จะเห็นว่าต้องประยุกต์ใช้ความรู้ระบบกระจายที่ซับซ้อน
  • เมื่อมันกลายเป็นมาตรฐานอุตสาหกรรมจากการเลือกใช้โดยสมัครใจของทุกคน ก็จะ สร้างมูลค่าเพิ่มและงานจำนวนมหาศาล
  • ถ้ามองไปที่บุคลากรผู้เชี่ยวชาญ Redis, โครงสร้างพื้นฐานฮาร์ดแวร์, เนื้อหาสำหรับการเรียนรู้, managed service (AWS, Azure) และโซลูชันเฉพาะทาง (Redis Enterprise) ก็จะเข้าใจได้ทันที
  • ทั้งหมดนี้ไม่ได้เกิดจากนโยบายรัฐหรือกฎหมายประเภทช่วยอุตสาหกรรมโน้นนี้หรือช่วยเหลือ SME อะไรทำนองนั้น

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

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

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

2 ความคิดเห็น

 
roxie 2025-12-14

ผมคงเป็นของปลอมมั้ง ฮือ

 
iolothebard 2025-10-31

สิ่งประดิษฐ์ที่มีประโยชน์…