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

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

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

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

迷茫
迷茫

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

모든 응답(6)
漂亮男人

두 개의 캐시가 필요합니다

  1. 키 이름 통화 중, 1분 동안 캐시됨

  2. 키 이름 전화 전송 횟수, 1일 동안 캐시됨, 성공적으로 전송될 때마다 +1

보내는 과정은 다음과 같습니다.

  1. "sent too fast"라는 직접적인 오류가 있는 경우 전화 통화 중이 있는지 확인합니다.

  2. 전화 발신 횟수가 있는지 확인합니다. 존재하는 경우 계속해서 10인지 확인합니다. 존재하고 10인 경우 "오늘 문자 메시지를 보낼 수 없습니다."라는 오류가 발생합니다. 신고

  3. SMS 보내기

  4. 쓰기 통화 중, 1분간 유효

  5. phone-send-count+1, 유효일 23시 59분 59초의 타임스탬프 - 현재 타임스탬프를 씁니다

PHPzhong

휴대폰번호+분, 휴대폰번호+일을 키로 사용하여 각각 1분과 1일에 보내는 문자 개수를 제한합니다

我想大声告诉你

분당 최대 1개 메시지(분 및 전화번호 기준):min:201701041750:13888888888
하루 최대 10개 메시지(날짜 및 전화번호 기준):day:20170104:13888888888

으아악
伊谢尔伦

다음과 같이 의사 코드를 작성하세요.

으아악

이것은 유연하고 변경 가능한 구성 파일로 전송 제한을 1분 또는 1일로 설정할 수 있다는 의미입니다.

1월 5일 개정

여기 내 친구 @Lowky가 일일 한도가 1일인지 24시간인지에 대한 질문을 상기시켰습니다. 두 개념이 다르기 때문입니다. 여기서 가장 중요한 점은 하루 10개 아이템 제한이 있고, 매일 이른 아침에 한도가 공개된다는 점입니다. 매 순간 이것에 대해 생각하는 것을 멈춰야 합니다. 코드는 다음과 같이 수정됩니다.

으아악
洪涛

첫 번째 질문은 만료 시간을 설정하면 달성할 수 있습니다. Redis에 휴대폰 번호가 존재하는 한 1분이 지나지 않았다는 의미입니다.
두 번째 질문은 매번 카운터를 변경하는 것입니다. 전송되고 카운터 만료 시간이 1일로 설정됩니다.

左手右手慢动作

간단한 지침:

  1. 열쇠 2개가 필요합니다

  2. 1분 후에 만료되는 키

  3. 24시간 후에 만료되는 키

SMS 사업에 따르면 정산은 0시가 아닌 유효기간을 기준으로 이뤄진다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!