我接入了阿里云的短信,请问如何限制每个手机每天对验证码接收次数的限制呢?
6 回答
心有法竹
TA贡献1866条经验 获得超5个赞
memcached/redis/数据库都能做到
根据手机号构造一个key,如手机号码-send-今天日期
- 发送之前读取这个key的值,如果大于等于设定的值,接口直接报错返回
- 发送验证码
- 将该key的值+1
富国沪深
TA贡献1790条经验 获得超9个赞
推荐使用redis记录每天发送的日志,统计每日每个手机号发送验证的次数,超过限制次数不发。记得定时清理这部分日志。
当然也可以使用mysql去做,只是redis会快很多。
动漫人物
TA贡献1815条经验 获得超10个赞
使用缓存,redis为例,发送之前,比如你要限制每天发送次数,
- 写一个键为 手机号.日期 ,值为次数, 有效时间 24 小时, 的缓存
- 发送前验证检验 a.是否存在(配合当天日期) b.次数是否达到限制
- 符合条件发送, 让该缓存自增
要是你想复杂一点, 比如说:
10分钟内可以发5次,超过5次等待30分钟才能发送
- 写一个 手机号为键,值为次数的缓存,初始值为1, 10分钟的缓存
- 检测是否存在, 如果存在, 检测次数? 次数未达到最大值, 自增, 到了最大次数, 将缓存时间修改为30分钟
- 6 回答
- 0 关注
- 1197 浏览
添加回答
举报
0/150
提交
取消