検索

ホームページ  >  に質問  >  本文

Redis 如何限制短信发送

暂时不考虑 ip,什么的限制,只考虑 手机号限制,

如何用redis做到限制,一个手机号,1分钟内最多发一条,一天内最多10条

各位大神有什么好方案,先谢!(崇拜脸)

迷茫迷茫2775日前953

全員に返信(6)返信します

  • 漂亮男人

    漂亮男人2017-04-27 09:05:05

    2 つのキャッシュが必要

    1. キー名電話が話中のため、1 分間キャッシュされました

    2. キー名電話送信数、1 日間キャッシュ、正常に送信されるごとに +1

    送信時の手順は以下の通りです:

    1. 「送信が早すぎる」という直接的なエラーがあるかどうかを確認します。

    2. phone-send-count が存在するかどうかを確認します。存在する場合は、それが 10 に等しいかどうかの確認を続けます。存在し、10 に等しい場合は、「テキスト メッセージを送信できません」というエラーが表示されます。今日"

    3. SMSを送信

    4. 通話中のため書き込み、1 分間有効

    5. phone-send-count+1、有効日の 23:59:59 のタイムスタンプ - 現在のタイムスタンプを書き込みます

    返事
    0
  • PHPz

    PHPz2017-04-27 09:05:05

    携帯電話番号 + 分と携帯電話番号 + 日をキーとして使用して、それぞれ 1 分間と 1 日に送信されるテキスト メッセージの数を制限します

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-04-27 09:05:05

    1分以内に最大1つのメッセージを送信できます。分と携帯電話番号をキーとして使用します:min:201701041750:13888888888
    一天内最多10条,用日期和手机号号为key:day:20170104:13888888888

    リーリー

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-27 09:05:05

    次のような疑似コードを作成します:

    リーリー

    これで、1 分または 1 日の送信制限を構成ファイルに設定できます。これは柔軟で変更可能です。

    1月5日に修正;

    私の友人 @Lowky が、1 日の制限が 1 日なのか 24 時間なのかという質問を思い出させてくれました。これら 2 つの概念は異なるからです。ここでのポイントは、1日10個までという制限があり、毎日早朝に制限が解除されるということ。このことを毎分考えるのはやめるべきです。コードは次のように変更されます:

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-27 09:05:05

    最初の質問は、Redis に携帯電話番号が存在する限り、1 分経過していないことを意味します。
    2 番目の質問は、送信および設定されるたびにカウンターを変更することです。カウンターの有効期限を 1 日にします

    返事
    0
  • ringa_lee

    ringa_lee2017-04-27 09:05:05

    簡単な手順:

    1. 鍵は2つ必要です

    2. 1 分で期限切れになるキー

    3. 24 時間で期限切れになるキー

    有効期間に基づくSMS業務に準じて処理され、0時決済ではありません。

    返事
    0
  • キャンセル返事