一:
queue佇列,類似水管,水從入口進從水龍頭出,水龍頭要一直著水就會出來,沒有水就會等水出來。
所以我們用到兩個方法,
新增和取值。
add 增加乙個元索 如果佇列已滿,則丟擲乙個iiiegaislabeepeplian異常put 新增乙個元素 如果佇列滿,則阻塞
因為我們是秒殺,我們指定佇列長度後不需要它阻塞。佇列長度就是請求的成功數。
poll 移除並返問佇列頭部的元素 如果隊列為空,則返回nullremove 移除並返回佇列頭部的元素 如果隊列為空,則丟擲乙個nosuchelementexception異常
take 移除並返回佇列頭部的元素 如果隊列為空,則阻塞
我們用take一直阻塞。
2:
/** * 佇列工具類
* * @author jiang */
public
class
queueutil
catch
(exception e)
}public
static optionaltake()
catch
(interruptedexception e)
return
optional.ofnullable(killid);
}
/startkill2")
public
r startkill2(string killid)
return
r.error();
}
***專案啟動時載入
*/@component
@slf4j
public
class
@autowired
private
iseckillservice seckillservice;
@override
public
void
log.info(
"專案初始化載入");
while (true
) }
}
@override@transactional(rollbackfor = exception.class
)
public
r startkill(string killid)
return r.error("
沒有了!");
}
springboot 限時秒殺
redisdao 來控制秒殺物件是否放入快取中 repository public class redisdao private runtimeschemaschema runtimeschema.createfrom seckill.class public seckill getseckill ...
SpringBoot整合Redis(單機 集群)
前面redis弄了那麼多,就是為了在專案中使用.那這裡,就分別來看一下,單機版和集群版在springboot中的使用吧.在裡面,我會同時貼出jedis版,作為比較.1.pom.xml org.springframework.boot spring boot starter data redis 1....
秒殺系統 mysql 秒殺系統之資料庫
秒殺系統的資料庫中的庫存加減操作是最為關鍵的點。12年天貓雙十一的超賣事件,對平台的負面影響是非常巨大的。資料庫裡做庫存扣減,簡單的可以用以下sql來說明 update stock table set inventory inventory 1 where item id xx and invent...