如何用java实现redis incr的高并发计数器

需求是一分钟内接口的调用次数不超过1000次 次数放在redis缓存里。

3个回答

redis本身就是事件驱动模型,你incr递增好了,然后get获取判断一下是否超过次数

Long incr = jedisCluster.incr(userName);
if (incr == 0) {
jedisCluster.incrBy(userName, 1);
jedisCluster.expire(userName, 10);
}else if(incr > 5){
String sql = "UPDATE t_un_vehiclestore_account SET userState = 0 WHERE username = '"+userName+"'";
baseDao.updateBySql(sql);
}
需要设置有效时间 我这么设置没有效果呀 求大神帮忙看看

key值 拼多个当前需要统计的时间分值就行了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐