秒殺: 大量請求搶奪少量資源的時候。
如果直接使用資料庫的樂觀鎖或者悲觀鎖來實現,資料庫壓力很大,處理效率也很低下。
這裡有乙個比較好的思路就是利用redis令牌桶的方法實現。
首先了解乙個redis的幾個命令:
redis.rpush(key,value); 向佇列右側新增元素
redis.lpop(key);從佇列左側拿出乙個元素
redis.sadd(key,value); 向set中新增乙個元素
redis.sismember(key,value);判斷value在不在這個set中
如果要控制同乙個賬號,不能搶到多個,可以使用sismember命令。
redis令牌桶限流
每個ip 1秒內只能傳送一次請求 pom檔案 org.springframework.bootgroupid spring boot starter data redis reactiveartifactid 2.1.3.releaseversion dependency 啟動引導類定義 keyre...
Redis令牌桶限流
在開發介面伺服器的過程中,為了防止客戶端對於介面的濫用,保護伺服器的資源,通常來說我們會對於伺服器上的各種介面進行呼叫次數的限制。比如對於某個 使用者,他在乙個時間段 interval 內,比如 1 分鐘,呼叫伺服器介面的次數不能夠 大於乙個上限 limit 比如說 100 次。如果使用者呼叫介面的...
redis實現令牌桶演算法思路
1.常用的限流思路令牌桶演算法和漏桶演算法 直接令牌桶演算法 class tokenbucket public function construct config queue max 獲取令牌 public function get 新增令牌 param int num return int pub...