Latency 1 มิลลิวินาทีทำได้ง่ายกับ Redis เมื่อฐานข้อมูลและไคลเอ็นต์อยู่ในภูมิภาคเดียวกัน แต่หากต้องการให้ไคลเอ็นต์กระจายทั่วโลก Latency จะเพิ่มขึ้นเกิน 100 มิลลิวินาที เราพัฒนา Edge Caging เพื่อแก้ปัญหานี้
Edge Caching คืออะไร
ด้วย Edge Caching การตอบสนอง REST จะถูกแคชที่ Edge Locations ทั่วโลก คล้ายกับ CDN เราเห็น Latency โลกเฉลี่ย 5 มิลลิวินาทีเมื่อเปิดใช้งาน Edge Caching ดู แอปพลิเคชัน Benchmark ที่เราบันทึกตัวเลข Latency จากไคลเอ็นต์ใน 10 ภูมิภาค เราเปรียบเทียบ Latency ระหว่างคำขอที่ส่งไปยัง Edge URL และ REST URL ธรรมดา เมื่อระยะห่างระหว่างเซิร์ฟเวอร์และไคลเอ็นต์เพิ่มขึ้น ผลกระทบของ Edge Caching ก็จะเพิ่มขึ้นตามไปด้วย

กรณีการใช้งาน (Use Cases)
ไคลเอ็นต์ Web/Mobile แบบ Backendless
Upstash ให้ Read-only Authentication Tokens เพื่อให้ผู้ใช้เข้าถึงฐานข้อมูลโดยไม่ต้องมีแบ็กเอนด์ สามารถเข้าถึง Redis โดยตรงจากแอปเว็บหรือมือถือ ในสถาปัตยกรรมนี้ ไคลเอ็นต์อาจอยู่ที่ใดก็ได้ การแคชข้อมูลในตำแหน่งใกล้ผู้ใช้ที่สุดจึงมีความหมายมาก
สถาปัตยกรรม Serverless หลายภูมิภาค
คุณสามารถรัน AWS Lambda Function ในหลายภูมิภาคเพื่อลด Global Latency ฟังก์ชันของ Vercel/Netlify ทำงานในภูมิภาคต่างกันในบางการตั้งค่า Serverless Redis พร้อม Edge Caching จะให้ข้อมูลเร็วทุกที่ที่ฟังก์ชัน Serverless ของคุณทำงาน
Edge Functions
Edge Computing (Cloudflare Workers ฯลฯ) กำลังเป็นวิธียอดนิยมในการสร้างแอปพลิเคชันที่เร็วทั่วโลก ความท้าทายกับ Edge Functions คือไม่มีตัวเลือกมากนักในการเก็บข้อมูล Redis พร้อม Edge Caching เหมาะอย่างยิ่งสำหรับ Edge Functions ด้วย Latency ต่ำและความเบา
เริ่มต้นใช้งาน
คุณสามารถเปิดใช้งาน Edge Caching ได้ใน Upstash Console โปรดทราบว่า Edge Caching มี ค่าใช้จ่ายเพิ่มเติม
เมื่อเปิดใช้งาน Edge Caching แล้ว คุณจะพบ Edge URL ในกล่องโต้ตอบ REST API Edge Caching พร้อมใช้งานเฉพาะสำหรับการเรียก GET สำหรับการอัปเดต (POST) ยังคงใช้ REST API ธรรมดาได้
โดยค่าเริ่มต้น คำตอบที่แคชจะหมดอายุใน 30 วินาที คุณสามารถควบคุมได้ด้วย Header Cache-Control: max-age=<seconds>
ตัวอย่าง:
curl https://us1-smart-bunny-32732.edge-c.upstash.io/get/foo \
-H "Authorization: Bearer 2dfgf98elrg0w009c842z2adfdde9132" \
-H "Cache-Control: max-age=50"
คำขอแรกไปยัง URL ด้านบนจะดึงคำตอบจาก Origin คำขอถัดไปจะดึงจาก Edge Locations คำตอบที่แคชจะหมดอายุหลัง 50 วินาทีที่แต่ละ Edge Location
Edge Cating ต่อ Global Database
การสร้าง Global Database (อัปเดต: เปิดตัวแล้ว, เรียนรู้เพิ่มเติม) โดยการจำลอง Redis ไปหลายภูมิภาคอยู่ในแผนทางของเรา Global Database จะให้การ保证ความสอดคล้องที่ดีกว่าและ Write Latency โดยการจำลองการเขียนด้วย แต่การจำลองฐานข้อมูลไปทุกภูมิภาคมีต้นทุนสูงมาก ยังคงอาจต้องการ Caching เพื่อลด Latency ในทุกสถานที่ ดังนั้น Edge Caching และ Global Replication จึงเป็นโซลูชันที่เสริมกันมากกว่าการแข่งขัน หากกรณีการใช้งานของคุณทนทานต่อ Eventually Consistent Reads Edge Caching จึงเป็นโซลูชันที่ยอดเยี่ยมแล้วซึ่งให้ข้อมูลเร็วทั่วโลก
คาดหวังฟีดแบ็กจากคุณเกี่ยวกับความพยายามของเราในข้อมูล Serverless และ Edge คุยกับเราที่ Twitter และ Discord