Rediを使用して残りのAPIでレート制限を行いたいだけです。あなたは私に示唆してください、redisのどのデータ構造が適切かもしれません。私はちょうどキーと値を更新した後、要素を期限切れにすることはできませんRedisTemplateを使用しました。Java Redisレート制限
1
A
答えて
1
一般的な「ops /秒」の制限から、特定のユーザーが1日に行うことができる投稿の数など、より低い解像度で細かい制限まで、達成しようとしているものによっては複数のアプローチがあります。
私が気に入っている非常にシンプルでエレガントなアプローチは、有効期限が切れるカウンターです。この手法は簡単で、INCRがキーの有効期限を赤字で変更しないという事実を利用しています。つまり、基本的に1秒間に1,000リクエストをリソースに入れたいのであれば、(INCRを実行することによって)数字1のキーを作成し、それを1秒で期限切れにします。次に、各要求に対して、それが1000に達したかどうかをチェックし、増加していない場合はそれをインクリメントします。それがある場合 - 要求をブロックします。時間枠が経過すると、キーは自動的に期限切れとなり、次の要求時に再作成されます。擬似コードの観点から
は、アルゴリズムは次のとおり
def limit(resource_key):
current = GET(resource_key)
if current != NULL and current >= 1000:
return ERROR
else:
value = INCR(resource_key)
IF value == 1:
EXPIRE(value,1)
return OK
関連する問題
- 1. Asyncio&レート制限
- 2. Twitterのレート制限
- 3. Twitter APIレート制限
- 4. レート制限、エラー: 'ブロック'
- 5. Yahoo yqlレート制限
- 6. Ggmap "dsk"レート制限
- 7. PHPレート制限クライアント
- 8. Instagramのレート制限
- 9. オープンライブラリカバーAPIレート制限
- 10. Google APIレート制限
- 11. Pinterest APIレート制限
- 12. Node.js複数のレート制限を使用するAPIレート制限
- 13. pythonのudpレート制限?
- 14. Instagram APIレートの制限
- 15. pubsub動的レート制限
- 16. 並行性とレート制限
- 17. Twitter Search APIレート制限Zend
- 18. GithubのAPIレート制限
- 19. Pinterest APIとレート制限
- 20. Python Tornadoレート制限AsyncHttpClientフェッチ
- 21. Firebase Hostingでのレート制限
- 22. Nginx:動的レート制限
- 23. 分散レート制限アルゴリズム
- 24. サウンドクラウドとAPIレートの制限
- 25. Redis Hyperloglogの制限
- 26. レート制限を超えました
- 27. キュークリアを使用したRxJSの無制限レート制限
- 28. Vimeoがアプリケーションにレート制限を課す
- 29. API Restricted APIキーとレート制限付
- 30. FacebookグラフのAPIレート制限とバッチリクエスト