大家好,我是【架构摆渡人】,一只十年的程序猿,这是流量治理系列的第11篇原创文章,如果有收获,还请分享给更多的朋友。
假设我们要做一个业务需求,这个需求就是限制用户的访问频次。比如1分钟内只能访问20次,10分钟内只能访问200次。因为是用户维度的场景,性能肯定是要首先考虑,那么适合这个场景的非Redis莫属。
最简单的实现,莫过于只是用incr进行计数操作,于是有了下面的代码:
long count = redisTemplate.opsForValue().increment("user:1:60");
if (count > maxLimitCount) {
throw new LimitException("访问太频繁");
}
count = redisTemplate.opsForValue().increment("user:1:600"