เพิ่งเห็น 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
ไว้ดังนี้
- Database ที่ช้า ๆ ไม่น่าจะเหมาะกับ Microservices
- Redis สามารถใช้เป็น database ของแต่ละ service ได้ เนื่องจากสามารถ config ให้ persist ข้อมูลบน disk ได้ ข้อมูลไม่หาย ดังนั้นควรใช้ disk ที่มีความเร็วสูงนะ
- Redis สามารถใช้เป็นตัวกลางในการติดต่อสื่อสารระหว่าง services ได้
- Redis สามารถทำเป็น caching ของ database ใน service ได้
- Redis สามารถเก็บข้อมูลในรูปแบบที่ปกติและซับซ้อนได้
- Redis มี module เพิ่มเติมได้ เช่น Redis search และ Redis graph เป็นต้น
สุดท้ายเรื่องเครื่องมือให้เหมาะสมกับงาน
หรือเรามีเครื่องมือเดียว เลยต้องใช้มันไปทุกงานนะ !!