Redis实现访问次数限流,这有难点吗?

本文介绍了如何利用Redis实现用户访问次数限制,包括1分钟和10分钟内的频次控制。通过 incr 操作计数,使用 pipeline 或 Lua 脚本优化性能,以及HashTag解决集群下Key的路由问题,确保高效且准确地执行限流策略。
摘要由CSDN通过智能技术生成

大家好,我是【架构摆渡人】,一只十年的程序猿,这是流量治理系列的第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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值