2016-06-21 10 views
1

私のフラスコAPIのレートを制限したい。 2つの文書が見つかりました。フラスコのレート制限(レディスなし)

一つは、単純なフラスコリミッターです:https://flask-limiter.readthedocs.io/en/stable/

第二には、Redisのを使用している:http://flask.pocoo.org/snippets/70/

私はRedisのせずに、リモートアドレスに基づいて、要求をレート制限することができていたときにRedisのの意義は何ですか(最初の文書で説明したように)。

答えて

6

Redisでは、レート制限状態を永続ストアに保存できます。

これは、あなたができることを意味します:

    は、WebサーバやWebアプリケーションを再起動し、まだレート制限の仕事を持っている
  1. 。代わりに、作業プロセスが破棄され、新しいプロセスが作成されるため、最後に行われた要求の記録は失われません。
  2. サーバーWebサーバーまたはWebアプリケーションを使用します。これは、レート制限状態が外部データストアに格納され、共有データ同期とデータ競合の問題も解決されるためです。必要な数のWebサーバーを実行することができます。レート制限はすべてのWebサーバーで共有されます。
  3. レート制限状態を見てください。 Redisは簡単なCLIツールを提供しています。このツールを使用すると、現在のアクティブなデータを臨機応変に見たり、入ってくるコマンドやリクエストを監視したりすることができます。
  4. レート制限アルゴリズムでRedisがTTL、LRUなどを管理できるようにします。 Redisはこれを本質的にサポートしています。