最近 公司遇到 一个高并发业务情况值得记录 ,验证码每分钟只能发送一次短信,每日50条上限
整理了一下有多种解决方案
1. 采用数据库主键方式 主键采用 yyyyMMddHHmm + 手机号 ,就能每个手机号 每分钟只能表内插入一次 。
2.采用 concurrentHashmap 这个不适用 分布式多节点 ,使用 putifabsand 方法 , 就是 如果 没有 就 插入,第一个人插入返回null,第二个人插入会返回存在的值
3.jdk 1.6 可使用 sych(new StringBuilder("key").toString.toIntern){XXXXXXX}, jdk1.7可使用 google-guava 库 需要 两个包 google-current 和 google-base
4.可使用 redis 使用 putnXXX 方法 意思就是 如果 没有 则插入 ,后一个使用 会 返回0 ; 千万不能get哦 ,并发是get不到的 。