เวลาแฝง 1 ms นั้นง่ายด้วย Redis เมื่อฐานข้อมูลและไคลเอนต์อยู่ในภูมิภาคเดียวกัน แต่ถ้าคุณต้องการให้ลูกค้ากระจายไปทั่วโลก เวลาแฝงก็จะเพิ่มขึ้นมากกว่า 100 มิลลิวินาที เราสร้าง Edge Caching เพื่อเอาชนะสิ่งนี้
การแคชขอบ
ด้วยการแคชขอบ การตอบสนอง REST จะถูกแคชที่ตำแหน่งขอบทั่วโลก เช่นเดียวกับ CDN เราเห็นเวลาแฝงทั่วโลกโดยเฉลี่ย 5ms เมื่อเปิดใช้งานการแคชขอบ ดูแอปพลิเคชันเกณฑ์มาตรฐานของเราที่เราบันทึกตัวเลขแฝงจากลูกค้าที่อยู่ใน 10 ภูมิภาคที่แตกต่างกัน เราเปรียบเทียบเวลาแฝงระหว่างคำขอที่ทำกับ edge url และ REST url ธรรมดา เมื่อระยะห่างระหว่างเซิร์ฟเวอร์และไคลเอนต์เพิ่มขึ้น ผลกระทบของการแคชขอบจะเพิ่มขึ้น
คลิกที่นี่เพื่อทำการทดสอบด้วยตัวเอง
กรณีการใช้งาน
ไคลเอนต์เว็บ/มือถือ (แบ็คเอนด์)
Upstash จัดเตรียมโทเค็นการพิสูจน์ตัวตนแบบอ่านอย่างเดียวเพื่อให้ผู้ใช้สามารถเข้าถึงฐานข้อมูลได้โดยไม่ต้องมีแบ็กเอนด์ คุณสามารถเข้าถึง Redis ได้โดยตรงจากเว็บหรือแอปพลิเคชันมือถือ ในสถาปัตยกรรมนี้ ลูกค้าสามารถอยู่ที่ไหนก็ได้ คุณควรแคชข้อมูลในตำแหน่งที่ใกล้กับผู้ใช้ของคุณมากที่สุด
สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์หลายภูมิภาค
คุณสามารถเรียกใช้ฟังก์ชัน AWS Lambda ได้ในหลายภูมิภาคเพื่อลดเวลาแฝงทั่วโลก ฟังก์ชัน Vercel/Netlify ทำงานในภูมิภาคต่างๆ ในการกำหนดค่าบางอย่าง Serverless Redis พร้อมการแคชที่ขอบจะให้ข้อมูลที่รวดเร็วไม่ว่าฟังก์ชันแบบไร้เซิร์ฟเวอร์ของคุณจะอยู่ที่ใด
ฟังก์ชันขอบ
Edge Computing (พนักงาน Cloudflare เป็นต้น) กำลังกลายเป็นวิธียอดนิยมในการสร้างแอปพลิเคชันที่รวดเร็วทั่วโลก ความท้าทายของฟังก์ชัน edge คือ คุณไม่มีตัวเลือกมากมายในการเก็บข้อมูลของคุณ Redis พร้อมการแคชขอบเหมาะอย่างยิ่งสำหรับฟังก์ชันขอบที่มีความหน่วงแฝงต่ำและน้ำหนักเบา
เริ่มต้นใช้งาน
คุณสามารถเปิดใช้งานการแคชขอบในคอนโซล Upstash ระวังว่าการแคชขอบมีค่าใช้จ่ายเพิ่มเติม
เมื่อเปิดใช้งานการแคชขอบ คุณจะพบ URL ขอบในกล่องโต้ตอบ REST API Edge caching ใช้ได้กับการโทร GET เท่านั้น สำหรับการอัปเดต (POST) คุณยังคงใช้ REST API แบบธรรมดาได้
โดยค่าเริ่มต้น การตอบกลับที่แคชไว้จะหมดอายุใน 30 วินาที คุณสามารถควบคุมสิ่งนี้ได้ด้วย 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 ด้านบนจะดึงการตอบกลับจากต้นทาง คำขอถัดไปจะถูกดึงมาจากตำแหน่งขอบ การตอบสนองที่แคชไว้จะหมดอายุหลังจาก 50 วินาทีในแต่ละตำแหน่งขอบ
การแคชขอบเทียบกับฐานข้อมูลทั่วโลก
การสร้างฐานข้อมูลทั่วโลก (อัปเดต:เผยแพร่แล้ว เรียนรู้เพิ่มเติม) โดยการจำลอง Redis ไปยังหลายภูมิภาคอยู่ในแผนงานของเรา ฐานข้อมูลทั่วโลกจะให้การรับประกันความสอดคล้องที่ดีขึ้นและเวลาในการตอบสนองในการเขียนโดยการจำลองการเขียนด้วย แต่การจำลองฐานข้อมูลไปยังทุกภูมิภาคอาจมีค่าใช้จ่ายสูง คุณยังอาจต้องใช้การแคชเพื่อลดเวลาแฝงในทุกตำแหน่ง ดังนั้นการแคช Edge และการจำลองแบบทั่วโลกจึงเป็นโซลูชันที่เติมเต็มซึ่งกันและกันมากกว่าที่จะแข่งขันกัน หากกรณีการใช้งานของคุณทนต่อการอ่านที่สม่ำเสมอในที่สุด การแคชขอบเป็นโซลูชันที่ยอดเยี่ยมอยู่แล้วซึ่งให้ข้อมูลที่รวดเร็วทั่วโลก
รอคอยที่จะได้ยินจากคุณเกี่ยวกับความพยายามของเราในข้อมูลแบบไร้เซิร์ฟเวอร์และข้อมูลขอบ พูดคุยกับเราทาง Twitter และ Discord