限流的作用是防止某个段时间段内的请求数过多,造成模块因高并发而不可用。
这篇文章给大家介绍使用Java实现Redis限流的相关知识,一起看看吧
限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统
一旦达到限制速率则可以拒绝服务。
限流包括两种:
1.Nginx接入层限流
按照一定的规则如帐号、IP、系统调用逻辑等在Nginx层面做限流
2.业务应用系统限流
通过业务代码控制流量这个流量可以被称为信号量,可以理解成是一种锁,它可以限制一项资源最多能同时被多少进程访问。
这里主要说说第二种使用redis在业务层进行限流。
公司做电商业务的,经常会发放优惠券,在某个点优惠券领取开放后,会有大量的并发流量进入,导致系统压力过大,为了限制并发流量,这里使用redis在业务层做了流量控制。
————————————————
1、概述
限流的含义是在单位时间内确保发往某个模块的请求数量小于某个数值,比如在实现秒杀功能时,需要确保在10秒内发往支付模块的请求数量小于500个。限流的作用是防止某个段时间段内的请求数过多,造成模块因高并发而不可用。
2、zset有序集合相关命令与限流