Redis 如何限制短信发送
迷茫
迷茫 2017-04-27 09:03:05
0
6
899

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

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

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全員に返信(6)
漂亮男人

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
PHPzhong

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

いいねを押す +0
我想大声告诉你

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

リーリー
いいねを押す +0
伊谢尔伦

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

リーリー

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

1月5日に修正;

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

リーリー
いいねを押す +0
洪涛

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

いいねを押す +0
左手右手慢动作

簡単な手順:

  1. 鍵は2つ必要です

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

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!