Redis实现高并发计数器
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信、一个接口一分钟限制多少请求、一个接口一天限制调用多少次等等。使用Redis的Incr自增命令可以轻松实现以上需求。以一个接口一
千家信息网最后更新 2026年11月02日Redis实现高并发计数器
业务需求中经常有需要用到计数器的场景:譬如一个手机号一天限制发送5条短信、一个接口一分钟限制多少请求、一个接口一天限制调用多少次等等。使用Redis的Incr自增命令可以轻松实现以上需求。以一个接口一天限制调用次数为例:
/** * 是否拒绝服务 * @return */ private boolean denialOfService(String userId){ long count=JedisUtil.setIncr(DateUtil.getDate()+"&"+userId+"&"+"queryCarViolation", 86400); if(count<=10){ return false; } return true; }/** * 查询违章 * @param plateNumber车牌 * @param vin 车架号 * @param engineNo发动机 * @param request * @param response * @throws Exception */ @RequestMapping("/queryCarViolationList.json") @AuthorizationApi public void queryCarViolationList(@CurrentToken Token token,String plateNumber,String vin, String engineNo,HttpServletRequest request,HttpServletResponse response) throws Exception { String userId=token.getUserId(); //超过限制,拦截请求 if(denialOfService(userId)){ apiData(request, response, ReqJson.error(CarError.ONLY_5_TIMES_A_DAY_CAN_BE_FOUND)); return; } //没超过限制,业务逻辑…… }每次调用接口之前,先获得下计数器自增后的值,如果小于限制,放行,执行后面的代码。如果大于限制,则拦截掉。
JedisUtil工具类:
public class JedisUtil { protected final static Logger logger = Logger.getLogger(JedisUtil.class); private static JedisPool jedisPool; @Autowired(required = true) public void setJedisPool(JedisPool jedisPool) { JedisUtil.jedisPool = jedisPool; } /** * 对某个键的值自增 * @author liboyi * @param key 键 * @param cacheSeconds 超时时间,0为不超时 * @return */ public static long setIncr(String key, int cacheSeconds) { long result = 0; Jedis jedis = null; try { jedis = jedisPool.getResource(); result =jedis.incr(key); if (cacheSeconds != 0) { jedis.expire(key, cacheSeconds); } logger.debug("set "+ key + " = " + result); } catch (Exception e) { logger.warn("set "+ key + " = " + result); } finally { jedisPool.returnResource(jedis); } return result; }}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
限制
接口
计数器
业务
需求
代码
内容
发动机
命令
场景
就是
工具
手机
手机号
时间
次数
短信
车架
车牌
逻辑
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
涨乐互联网科技
互联网科技的发展
北京互联网科技公司
互联网 的科技创新
奇酷互联网科技
善班互联网科技有限公司
万达互联网科技
互联网金融科技委员会
甘肃拓世互联网科技有限公司
哈尔滨新华互联网科技
互联网科技公司的市场部门
科技与互联网的利与弊
区块链结合互联网科技
众安科技工业互联网合作
互联网金融科技元年
广州百诚互联网科技有限公司官网
普陀区互联网教育科技管理办法
国产互联网科技公司
上海万顺科技互联网有限公司招聘
广州三三互联网科技有限公司
互联网科技图片
哈尔滨大商圈互联网科技有限公司
互联网金融 科技
奇士达互联网科技
长亮科技 互联网金融
佰商互联网科技有限公司
玉溪新华互联网科技好不好
互联网金融科技名词解释
风投北京互联网科技
互联网与数字科技关系