转自:https://blog.csdn.net/qq_30947533/article/details/78844709

方法1:数据访问量大的话 用redis来做,用户在调用短信接口时,先根据用户id去查一下次数,如果没有id这个key,证明就是1分钟内首次发送,发送后,在redis中记录一个key为id的次数为一次,再为这个key加上过期时间1分钟

方法2:在filter层加一个过滤器,拦截所有的请求,解析出请求的用户,然后通过缓存,获取到该用户当前已访问次数,后面逻辑判断就不说了,主要问题其实是集中在缓存这里,其他的都不想干。
缓存,要求最好能够自动超时回收,也就是说比如你想设定三分钟内限制访问次数,那么你记录的缓存有效期就三分钟就好了,过了三分钟缓存自动失效,计数器也就重新从0开始了。
优先推荐redis,如果不想引入第三方工具,那么Guava Cache也就可以满足需求的。

转载于:https://www.cnblogs.com/rocker-pg/p/9120466.html

Java项目中,如何限制每个用户访问接口的次数相关推荐

  1. 如何在Java项目中查找未使用/无效的代码

    本文翻译自:How to find unused/dead code in java projects What tools do you use to find unused/dead code i ...

  2. 为什么我会在2012年的新企业Java项目中使用Java EE而不是Spring

    这个问题经常出现. 我的新项目也在2011年11月发布. 在这个新的Enterprise Java项目中,我将使用Java EE(JEE)代替Spring框架. 我知道:关于此主题的文章,博客和论坛讨 ...

  3. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

    如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...

  4. 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境

    深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...

  5. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  6. 设计银行项目中的注册银行用户基本信息的类,包括账户卡号、姓名、身份证号、联系电话、家庭住址。

    什么是类和对象? 类是模子,确定对象会拥有的特征(属性)和行为(方法),类的特点:类是对象的类型,具有相同属性和方法的一组对象的集合.对象是类的实例,什么是对象的属性?属性是对象拥有的各种特征:每个对 ...

  7. 实战派 | Java项目中玩转Redis6.0客户端缓存

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...

  8. 缓存详解-在java项目中使用缓存

    目录 一.概述 二.java常用的缓存 三.使用缓存将会面临的一些问题 穿透 雪崩 击穿 总结 三.缓存淘汰策略 缓存淘汰 在Spring项目中优雅的实现缓存 二级缓存推荐的实现 一.概述 在java ...

  9. java项目中rides的使用

    项目开发中一些特定的数据我们不一定要关系型数据库来存储,使用非关系型数据库反而更方便读取数据,效率高,这里介绍一下在java中rides的使用 1. 导入rides所需要的相关依赖jar包(在pom文 ...

最新文章

  1. AI一分钟|苹果无人车可根据乘客情绪调整行车方式;快商通完成近亿元融资
  2. 探寻《魔兽争霸3》中最不为人知的按键
  3. js vm报错_uni-app v3版本更新常见问题排查
  4. array_multisort - 如何保持键值,不重置键值,键名保持不变
  5. 今天整理了一些老作品
  6. Nexys4 DDR + OV7670 摄像头实时监控系统
  7. python中break和continue的区别_python中break和continue的区别
  8. 设备激活错误。物理文件名 'D:\LOG\ShoppingDB_Log.ldf' 可能有误。
  9. cus系统前台改版 beta1.1发布
  10. C++中判断某一文件或目录是否存在
  11. C++ 句柄类的原理以及设计
  12. 【目标检测】YOLOV2详解
  13. 工业面阵相机与源型PLC和漏型PLC外部触发接线
  14. Postman下载与安装操作步骤【超详细】
  15. 【原创】St2-057检测工具(Apache Struts2远程代码执行高危漏洞)
  16. go kafka 配置SASL认证及实现SASL PLAIN认证功能
  17. 5.20爬虫结——Mu
  18. 【面试技巧】你对我们公司了解多少
  19. 2012 ACM 亚洲区总结帖
  20. java写linux内核,基于mykernel 2.0编写一个操作系统内核

热门文章

  1. Ubuntu下安装Node.js
  2. C语言常用排序方法大全
  3. c语言的0变成奇怪的图形,Word打开后图片中的文字变成了奇怪的符号
  4. java监听所有端口_(变强、变秃)Java从零开始之zookeeper安装
  5. python colormap(颜色映射)
  6. c++通讯录控制台小程序
  7. python 虚拟环境就两句话整那么多没用的
  8. 根据excel中的容填写信息
  9. 比较器 Comparable 与compartor 的区别及理解
  10. 循序渐进 OSPF的详细剖析(三)