เพิ่งเห็น e-mail สำหรับหนังสือฟรีจากทาง RedisLabs
หนังสือชื่อว่า Redis Microservices for Dummies
เป็นหนังสือที่อธิบายเกี่ยวกับ

  • ความรู้เกี่ยวกับ Microservices architecture
  • ความรู้เกี่ยวกับ Redis ซึ่งมีความสามารถทั้ง caching, messaging และ storage/database
  • การออกแบบการติดต่อสื่อสารระหว่าง service โดยนำ Redis ไปใช้งาน
  • การจัดการข้อมูลระหว่าง cluster ของ Redis

สำหรับใครที่ยังไม่รู้ว่า Redis คืออะไร

ลองไปดูที่ Redis.io นะครับ
มันคือ Key-value database หนึ่งในกลุ่มของ NoSQL นั่นเอง
มักจะเรียกว่า Data structure database
เนื่องจากข้อมูลสามารถเก็บได้ทั้ง string, hash, list และ set เป็นต้น
และสามารถทำตัวเป็น messaging ได้อีก (Pub/Sub, Stream และ List)
และมีความสามารถเพิ่มเติมเรื่องของ HA คือ สามารถทำ cluster ได้

โดยในหนังสืออธิบายความสามารถต่าง ๆ ที่ Redis มี

ยกตัวอย่างเช่น

Redis สำหรับการสร้างระบบ messaging ทั้ง

  • Pub/sub
  • Redis streams
  • Redis Lists

Redis สำหรับเป็นที่จัดเก็บข้อมูลในรูปแบบต่าง ๆ ทั้ง

  • Hash
  • Sorted Set
  • สำหรับการ search
  • Graph
  • ข้อมูลในรูปแบบ JSON

แน่นอนว่าต้องมีการใช้เป็น caching หรือที่เก็บข้อมูลชั่วคราว

และชี้ให้เห็นว่า Redis นั้นเหมาะสมกับแนวทางของ Microservices อย่างไรบ้าง ?

ทั้งเรื่องของ communication หรือการติดต่อสื่อสารระหว่าง services
รวมไปถึงเรื่องการจัดการ state หรือ data ที่กระจายอยู่ในแต่ละ services
ว่าต้องทำอย่างไร

ปิดท้ายด้วยการสรุปเกี่ยวกับ Redis + Microservices

ไว้ดังนี้

  1. Database ที่ช้า ๆ ไม่น่าจะเหมาะกับ Microservices
  2. Redis สามารถใช้เป็น database ของแต่ละ service ได้ เนื่องจากสามารถ config ให้ persist ข้อมูลบน disk ได้ ข้อมูลไม่หาย ดังนั้นควรใช้ disk ที่มีความเร็วสูงนะ
  3. Redis สามารถใช้เป็นตัวกลางในการติดต่อสื่อสารระหว่าง services ได้
  4. Redis สามารถทำเป็น caching ของ database ใน service ได้
  5. Redis สามารถเก็บข้อมูลในรูปแบบที่ปกติและซับซ้อนได้
  6. Redis มี module เพิ่มเติมได้ เช่น Redis search และ Redis graph เป็นต้น

สุดท้ายเรื่องเครื่องมือให้เหมาะสมกับงาน
หรือเรามีเครื่องมือเดียว เลยต้องใช้มันไปทุกงานนะ !!