通过Redis实现限制指定时间内的操作次数
程序员文章站
2022-03-05 09:55:23
...
限制一个小时内访问次数不超过5次
if(jedisCluster.llen("userid")>=5 && System.currentTimeMillis() -
Long.parseLong(jedisCluster.lindex("userid",4))<=3600*1000){
//禁止访问
}else{
jedisCluster.lpush("userid",System.currentTimeMillis()+"");
//访问
}
通过redis的list数据类型,每次访问通过lpush命令将当前用户id作为键,当前系统时间作为值存入redis。
每次访问要进行判断,通过llen命令判断存入数据个数是否大于5,并且通过lindex命令取出倒数第五个数据,即访问时间。
比较当前时间与第五次访问时间的差值是否大于一个小时,如果大于则禁止访问,否则允许访问。