公開API
各APIキーにプランごとの制限があり、行儀の良いクライアントにはバーストを、それ以外には正確なRetry-Afterを返します。
アトミックなサーバー側のレート制限。1つのコマンドで使えるGCRA、またはスライディングウィンドウ、トークンバケット、リーキーバケットの名前付きリミッター。Luaは不要です。
ユーザー42に1分あたり10リクエストです。応答は、許可されたこと、上限、残り回数を示します。
実際のHotKVコマンドと応答例を使ったアニメーションのウォークスルーです。任意のステップをクリックすると、そこに移動します。 コマンドと応答は、HotKVで実際に入力し表示されるとおり英語のままです。
制限のないAPIは、行儀の悪いクライアントが1つ現れるだけで障害に陥ります。チェックをアプリケーションのコードで行うと、読み取り、計算、書き込みが必要になり、同時リクエストがその隙間をすり抜けます。多くのチームは、アトミックにするためだけにLuaスクリプトを保守する羽目になります。
GCRA.LIMITは判定と記録を1ステップで行うため、同時に動くクライアントが同じ状態で両方とも通過することはありません。また制限はウィンドウの境界でリセットされるのではなく、滑らかに回復します。名前で管理する制限には、RATELIMIT.CREATEでスライディングウィンドウ、トークンバケット、リーキーバケットのリミッターを設定でき、許可と拒否の統計も得られます。
ユーザー42に1分あたり10リクエストです。応答は、許可されたこと、上限、残り回数を示します。
GCRA.LIMIT ratelimit:user:42 60000 10スクレイパーはバーストの許容量を使い切り、その後は待機時間を告げられます。拒否されたリクエストは何も変更しません。
GCRA.LIMIT ratelimit:bot:7 60000 10無料プランの顧客には、スライディングウィンドウで1分あたり100リクエストを割り当てます。
RATELIMIT.CREATE free_plan 100 60000 ALGO sliding_windowエクスポートのエンドポイントは20ユニットを消費するため、許容量をより多く使います。
RATELIMIT.CHECK free_plan customer:881 COST 20設定、追跡中のキー、許可と拒否のリクエストの合計がわかります。
RATELIMIT.STATS free_plan各APIキーにプランごとの制限があり、行儀の良いクライアントにはバーストを、それ以外には正確なRetry-Afterを返します。
IPごと、アカウントごとの試行回数を制限し、クレデンシャルスタッフィングを遅らせます。
パートナーのAPIやLLMプロバイダーへの呼び出しを、フリート内のすべてのワーカーを通じてクォータ内に収めます。
バーストを許容する滑らかな回復、アトミックなチェックと更新、拒否時の再試行時間。
GCRA.LIMITGCRA.RESETスライディングウィンドウ、トークンバケット、リーキーバケットを一度作成し、キーごとにチェックします。
RATELIMIT.CREATERATELIMIT.CHECK高コストな呼び出しを複数のリクエストとして数えられます。GCRA.LIMITはcountを、RATELIMIT.CHECKはCOSTを受け取ります。
COSTリミッターごとの許可と拒否の合計。
RATELIMIT.STATSいいえ。GCRA.LIMITもRATELIMIT.CHECKも、チェック全体を1つのアトミックなコマンドで行います。
GCRA.LIMITは設定が不要で、すべてのプランで動作します。RATELIMIT.*の名前付きリミッターはアルゴリズムの選択と統計を追加するもので、PerformanceプランとScaleプランに含まれます。
何もかかりません。拒否されたGCRAの呼び出しはリミッターを変更しないため、再試行するクライアントがそれ以上不利になることはありません。
HotKVはRedisプロトコルに対応しているため、既存のクライアントを向けるだけで、これらと同じコマンドを実行できます。