Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

エッジキャッシングを使用した5ミリ秒のグローバルRedisレイテンシ

データベースとクライアントが同じリージョンにある場合、Redisを使用すると1ミリ秒のレイテンシーが簡単になります。ただし、クライアントをグローバルに分散させたい場合は、遅延が100ミリ秒を超えて増加します。これを克服するためにEdgeCachingを構築しました。

エッジキャッシング

エッジキャッシングを使用すると、REST応答は、CDNと同様に、世界中のエッジロケーションにキャッシュされます。エッジキャッシングが有効になっている場合、平均で5msのグローバルレイテンシが見られます。 10の異なるリージョンにあるクライアントからのレイテンシー数を記録するベンチマークアプリケーションを参照してください。エッジURLとプレーンRESTURLに対して行われるリクエスト間のレイテンシーを比較します。サーバーとクライアント間の距離が長くなると、エッジキャッシングの影響が大きくなります。

ここをクリックして、自分でテストを実行してください。

エッジキャッシングを使用した5ミリ秒のグローバルRedisレイテンシ

ユースケース

Web /モバイル(バックエンドレス)クライアント

Upstashは、ユーザーがバックエンドなしでデータベースにアクセスできるようにする読み取り専用の認証トークンを提供します。 WebまたはモバイルアプリケーションからRedisに直接アクセスできます。このアーキテクチャでは、クライアントはどこにでも存在できます。ユーザーに最も近い場所にデータをキャッシュすることは非常に理にかなっています。

マルチリージョンサーバーレスアーキテクチャ

AWS Lambda関数を複数のリージョンで実行して、グローバルレイテンシを下げることができます。 Vercel / Netlify機能は、一部の構成ではさまざまなリージョンで実行されます。エッジキャッシングを備えたサーバーレスRedisは、サーバーレス機能がどこにあっても高速データを提供します。

エッジ関数

エッジコンピューティング(Cloudflareワーカーなど)は、グローバルに高速なアプリケーションを構築するための一般的な方法になりつつあります。エッジ関数の課題は、データを保持するためのオプションがあまりないことです。エッジキャッシングを備えたRedisは、レイテンシが低く軽量であるエッジ機能に最適です。

はじめに

Upstashコンソールでエッジキャッシュを有効にできます。エッジキャッシングには追加コストがかかることに注意してください。

エッジキャッシングを有効にすると、RESTAPIダイアログでエッジURLを見つけることができます。エッジキャッシングは、GET呼び出しでのみ使用できます。アップデート(POST)の場合でも、プレーンなRESTAPIを使用できます。

デフォルトでは、キャッシュされた応答は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を複数のリージョンに複製してグローバルデータベースを構築する(更新:これはリリースされています。詳細をご覧ください)ことは、ロードマップに含まれています。グローバルデータベースは、書き込みも複製することで、一貫性の保証と書き込み遅延を向上させます。ただし、データベースをすべてのリージョンに複製するには、非常にコストがかかる可能性があります。それでも、すべての場所で遅延を最小限に抑えるためにキャッシュが必要になる場合があります。したがって、エッジキャッシングとグローバルレプリケーションは、競合するのではなく、相互に補完するソリューションです。ユースケースが結果整合性のある読み取りを許容する場合、エッジキャッシングはすでにグローバルな高速データを提供する優れたソリューションです。

サーバーレスおよびエッジデータに関する当社の取り組みについて、皆様からのご意見をお待ちしております。ツイッターと不和で私たちと話してください。


  1. UpstashRedisを使用したNetlifyグラフのグローバルキャッシュ

    昨日、NetlifyはNetlify Graphと呼ばれる新機能を発表しました。私の同僚は最近、写真の同様の欠落部分を強調し、Netlifyは解決に向けて良い一歩を踏み出しました。 基本的に、Netlify Graphは、開発者がWebアプリのGraphQL API呼び出しを構築するのに役立ちます。NetlifyDashboardでGraphQLリクエストを準備した後、シングルクリックでクライアントコードをプロジェクトに挿入できます。 Netlify関数をサードパーティサービスと一緒に使用することには欠点があります。クライアント側のリクエストは、最初にNetlifyバックエンド(関数)に送

  2. CloudflareワーカーとのRedis@Edge

    エッジでのコンピューティングは、近年最もエキサイティングな機能の1つです。 CDNを使用すると、ファイルをユーザーに近づけることができます。エッジコンピューティングを使用すると、アプリケーションをユーザーの近くで実行できます。これは、開発者がグローバルに分散されたパフォーマンスの高いアプリケーションを構築するのに役立ちます。 Cloudflare Workersは、現在この分野の主要製品です。コールドスタートのないサーバーレス処理環境を提供します。 Cloudflareのグローバルネットワークを活用して、アプリケーションのレイテンシーを最小限に抑えます。関数はJavascript、Rust、