Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Redis

Đạt 5ms Độ Trễ Toàn Cầu với Redis Edge Caching

Độ trễ 1ms với Redis rất dễ khi database và client cùng region. Nhưng nếu client phân bố toàn cầu, độ trễ sẽ vượt 100ms. Chúng tôi xây dựng Edge Caching để giải quyết vấn đề này.

Edge Caching là gì?

Với Edge Caching, các response REST được cache tại các edge locations trên toàn cầu, tương tự CDN. Chúng tôi quan sát độ trễ trung bình 5ms toàn cầu khi bật Edge Caching. Xem ứng dụng benchmark ghi nhận độ trễ từ client tại 10 region khác nhau, so sánh giữa edge URL và plain REST URL. Càng xa server, tác động của edge caching càng lớn.

Chạy test trực tiếp tại đây.

Đạt 5ms Độ Trễ Toàn Cầu với Redis Edge Caching

Các trường hợp sử dụng

Web/Mobile (Backendless Clients)

Upstash cung cấp read-only auth tokens cho phép truy cập database trực tiếp từ web/mobile app mà không cần backend. Client có thể ở bất cứ đâu. Cache dữ liệu tại vị trí gần user nhất là hoàn hảo.

Kiến trúc Serverless Multi-region

Bạn có thể chạy AWS Lambda ở nhiều region để giảm độ trễ toàn cầu. Vercel/Netlify functions chạy ở nhiều region tùy cấu hình. Serverless Redis với edge caching cung cấp dữ liệu nhanh ở đâu functions của bạn chạy.

Edge Functions

Edge computing (Cloudflare Workers, v.v.) đang trở thành cách phổ biến xây dựng ứng dụng nhanh toàn cầu. Thách thức là ít lựa chọn lưu trữ dữ liệu. Redis với edge caching phù hợp tuyệt vời cho edge functions nhờ độ trễ thấp và nhẹ.

Bắt đầu

Bạn có thể bật Edge Caching trong Upstash Console. Lưu ý: Edge Caching có .

Sau khi bật, bạn tìm thấy Edge URL trong dialog REST API. Edge Caching chỉ hoạt động cho GET calls. Với updates (POST), vẫn dùng plain REST API.

Mặc định cache hết hạn sau 30 giây. Kiểm soát bằng header Cache-Control: max-age=<seconds>.

Ví dụ:

curl https://us1-smart-bunny-32732.edge-c.upstash.io/get/foo \
 -H "Authorization: Bearer 2dfgf98elrg0w009c842z2adfdde9132" \
 -H "Cache-Control: max-age=50"

Request đầu tiên fetch từ origin. Các request sau fetch từ edge locations. Cache hết hạn sau 50 giây tại mỗi edge location.

Edge Caching vs Global Database

Xây dựng global database (Đã phát hành, tìm hiểu thêm) bằng cách replicate Redis sang nhiều region đang trong roadmap. Global database cho consistency tốt hơn và write latency thấp hơn bằng cách replicate writes. Nhưng replicate database đến tất cả region rất tốn kém. Vẫn cần caching để giảm thiểu latency ở mọi nơi. Edge caching và Global replication bổ sung cho nhau chứ không cạnh tranh. Nếu use case chấp nhận eventually consistent reads, edge caching đã là giải pháp tuyệt vời cung cấp dữ liệu nhanh toàn cầu.

Mong nghe phản hồi từ bạn về nỗ lực serverless và edge data. Trao đổi trên Twitter và Discord.