Redis使用场景之——限制验证码发送次数
项目中需要一个发送短信验证码的功能,但是需要限制每天发送限制码的次数,可以借助Redis的incr命令实现。
incr命令:
对存储在指定key
的数值执行原子的加1操作。
如果指定的key不存在,那么在执行incr操作之前,会先将它的值设定为0
。
返回值是执行递增操作后key
对应的值。
代码:
long count = redisTemplate.opsForValue().increment(mobile.concat(RedisKeyConstant.SMS_COUNT),1);
if (count > 5 ) {throw new ServiceException("您的操作太过频繁!");
} else {// 验证码次数凌晨清除Duration duration = Duration.between(LocalDateTime.now(), LocalDate.now().plusDays(1).atTime(0,0,0));redisTemplate.expire(mobile.concat(RedisKeyConstant.SMS_COUNT),duration.toMinutes(),TimeUnit.MINUTES);}
由于Redis是串行执行的,所以increment会每次给key值的value加1,超过5次就抛出异常,提示操作频繁,否则就放过并设置有效时间到第二天凌晨。
Redis使用场景之——限制验证码发送次数相关推荐
- Redis——模拟手机验证码发送
使用redis模拟手机验证码发送,规定一个手机号一天只能请求三次验证码,且每次请求的验证码只有两分钟就会过期 1.首先写一个函数随机产生六位验证码,使用random函数 //随机生成六位验证码publ ...
- [Redis] 使用Redis限制短信发送次数和发送频率
简介 使用Redis实现比如 一小时内允许用户发送5次短信,一天内允许用户发送10条短信的需求,改需要怎么做呢 方法 / 步骤 方法一:使用redis : 格式 appc_verifyCode_202 ...
- springboot + mybatis-plus短信验证码每天发送次数
springboot + mybatis-plus设置短信验证码每天发送次数 思路:(例如每天限制发送5次验证码) 1.首先我们要有相应的字段,个人建议:创建数据表(id,phone,amount,s ...
- Springboot+Redis接入腾讯云短信服务实现验证码发送
目录 一.开通腾讯云短信服务 二.代码实现 三.测试 申请阿里云短信服务需要以上线APP或已备案网站,腾讯云短信服务可以使用微信公众号申请,注册个人微信公众号比较方便,改用腾讯云短信服务,参考官方SD ...
- Redis应用场景举例
Redis应用场景举例 缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力. 作为Key-Value形态的内存数据库,Redis 最先会 ...
- 【缓存应用】谈谈redis应用场景
关于redis应用场景总结 1.计数器相关应用场景 高并发的秒杀活动.分布式序列号的生成 限制手机短信发送数量.接口每分钟请求次数 工单号递增计数场景 可以使用redis的 incrby命令实现原子性 ...
- 转载:Redis 应用场景
2019独角兽企业重金招聘Python工程师标准>>> 1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载 ...
- 详解 Redis 应用场景及应用实例
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...
- Redis 应用场景和应用实例详解
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...
最新文章
- 如何在windows下安装cygwin
- C# 枚举在项目中的应用总结
- python指定数据写入指定excel_python脚本——生成EXCEL,连接数据库,并将指定数据写入EXCEL...
- 秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
- java对象和json对象之间互相转换
- 修改项目名称之后,访问不到项目的问题
- PHPCMS 前台模板集合
- ARM 是什么,ARM的意思,ARM介绍
- 聚合接口对接,加油卡,流量充值,话费充值
- Chrome网页接口测试工具
- 九大微博传播分析工具
- 揭秘小程序上线不到一周,每天2万销售额,究竟怎么做到的?
- linux大于3T硬盘多个分区,Ubuntu挂载3T硬盘或大于2T磁盘的方法
- 在html页面中引入jquery
- python做情感分析
- 洛谷 P3166 [CQOI2014]数三角形(gcd+组合计数)
- ElasticSearch某个节点与集群失联这个过程会发生什么?
- 想成为职场达人就必须要读懂的职场生存法则
- flash 脚本 2
- Gbox开源:比RN和WebView更轻的高性能动态化业务容器,解决首页动态化的痛点
热门文章
- RPA落地效果:2个月,每天运行6000+小时,节省上万人力——以宝尊为例
- 仿淘宝固定右侧侧边栏 发现一个和教学视频不一样的地方
- 经典算法之顺序查找(Sequential Search)
- 五步轻松搭建RPA卓越中心,助力集团公司加速数字化
- HDU 2109 JAVA
- php将数组变成字符串,php怎样将数组转成字符串
- VPM642学习之串口通信
- android系统息屏设置_不用羡慕了!安卓8.0手机都能用上息屏显示
- 使用Cisco packet tracer 软件配置基本的交换机和路由器的基本信息
- maximum xor subarray以及xor + trie专题