Computer >> Máy Tính >  >> Lập trình >> Redis

Độ trễ Global Redis 5 ms với Edge Caching

Độ trễ 1 ms dễ dàng xảy ra với Redis khi cơ sở dữ liệu và máy khách ở trong cùng một khu vực. Nhưng nếu bạn muốn các máy khách được phân phối toàn cầu thì độ trễ sẽ tăng trên 100 mili giây. Chúng tôi đã xây dựng Edge Caching để khắc phục điều này.

Edge Caching

Với bộ nhớ đệm cạnh, các phản hồi REST được lưu vào bộ nhớ đệm ở các vị trí cạnh trên toàn thế giới, giống như CDN. Chúng tôi thấy độ trễ toàn cầu trung bình là 5ms khi bộ nhớ đệm cạnh được bật. Xem ứng dụng điểm chuẩn của chúng tôi, nơi chúng tôi ghi lại số độ trễ từ các khách hàng ở 10 khu vực khác nhau. Chúng tôi so sánh độ trễ giữa các yêu cầu được thực hiện đối với url cạnh và url REST đơn giản. Khi khoảng cách giữa máy chủ và máy khách tăng lên, tác động của bộ nhớ đệm cạnh sẽ tăng lên.

Nhấp vào đây để tự chạy thử nghiệm.

Độ trễ Global Redis 5 ms với Edge Caching

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

Ứng dụng khách web / di động (không phụ trợ)

Upstash cung cấp mã thông báo xác thực chỉ đọc để cho phép người dùng truy cập cơ sở dữ liệu mà không cần bất kỳ phụ trợ nào. Bạn có thể truy cập trực tiếp Redis từ web hoặc ứng dụng di động. Trong kiến ​​trúc này, khách hàng có thể ở bất cứ đâu. Rất có ý nghĩa khi lưu dữ liệu vào bộ nhớ cache ở những vị trí gần người dùng nhất của bạn.

Cấu trúc không máy chủ đa vùng

Bạn có thể chạy chức năng AWS Lambda của mình ở nhiều khu vực để giảm độ trễ toàn cầu. Các hàm Vercel / Netlify chạy ở các vùng khác nhau trong một số cấu hình. Serverless Redis với bộ nhớ đệm cạnh sẽ cung cấp cho bạn dữ liệu nhanh chóng cho dù các chức năng không máy chủ của bạn ở đâu.

Các hàm cạnh

Điện toán biên (Cloudflare worker, v.v.) đang trở thành một cách phổ biến để xây dựng các ứng dụng nhanh trên toàn cầu. Thách thức với các chức năng cạnh là bạn không có nhiều tùy chọn để lưu giữ dữ liệu của mình. Redis với bộ nhớ đệm cạnh rất phù hợp cho các chức năng cạnh với độ trễ thấp và nhẹ.

Bắt đầu

Bạn có thể bật bộ nhớ đệm cạnh trong bảng điều khiển Upstash. Lưu ý rằng bộ nhớ đệm cạnh có chi phí bổ sung.

Khi bộ nhớ đệm cạnh được bật, bạn có thể tìm thấy URL của Edge trong hộp thoại REST API. Bộ nhớ đệm cạnh chỉ khả dụng cho các cuộc gọi GET. Đối với các bản cập nhật (POST), bạn vẫn có thể sử dụng API REST thuần túy.

Theo mặc định, các câu trả lời được lưu trong bộ nhớ cache sẽ hết hạn sau 30 giây. Bạn có thể kiểm soát điều này bằng Cache-Control: max-age=<seconds> tiêu đề.

Ví dụ:

curl https://us1-smart-bunny-32732.edge-c.upstash.io/get/foo \

-H "Authorization: Bearer 2dfgf98elrg0w009c842z2adfdde9132"

-H "Cache-Control: max-age=50"

Yêu cầu đầu tiên đến URL ở trên sẽ tìm nạp phản hồi từ nguồn gốc. Các yêu cầu tiếp theo sẽ được tìm nạp từ các vị trí cạnh. Các câu trả lời đã lưu trong bộ nhớ cache sẽ hết hạn sau 50 giây tại mỗi vị trí cạnh.

Edge Caching và Global Database

Xây dựng cơ sở dữ liệu toàn cầu (Bản cập nhật:Bản này được phát hành, tìm hiểu thêm) bằng cách sao chép Redis sang nhiều khu vực nằm trong lộ trình của chúng tôi. Cơ sở dữ liệu toàn cầu sẽ cung cấp cho bạn sự đảm bảo nhất quán tốt hơn và độ trễ ghi bằng cách sao chép quá trình ghi. Nhưng có thể rất tốn kém để nhân rộng cơ sở dữ liệu đến tất cả các vùng. Tuy nhiên, bạn có thể cần bộ nhớ đệm để giảm thiểu độ trễ ở tất cả các vị trí. Vì vậy, Edge caching và Global replication là những giải pháp hoàn thiện lẫn nhau hơn là cạnh tranh. Nếu trường hợp sử dụng của bạn chấp nhận được các lần đọc nhất quán, thì bộ nhớ đệm cạnh đã là một giải pháp tuyệt vời cung cấp dữ liệu nhanh toàn cầu.

Mong nhận được phản hồi từ bạn về những nỗ lực của chúng tôi đối với dữ liệu không máy chủ và dữ liệu cạnh. Nói chuyện với chúng tôi trên twitter và sự bất hòa.