想問一下有關于快取的問題,公司做秒殺業務,領導問我們在秒殺時,假如有10萬個黑名單用戶都有資格進入秒殺會場,可是他們是在黑名單里的,其實不具備秒殺資格,那么這10萬個,或者100萬1000萬個黑名單用戶這么大的資料量放在哪里才好,總不能進來一個未知用戶就查一下快取確定他身份是黑名單在標記一下,這樣每一個未知用戶一斤來秒殺會場都要查一下資料庫吧,所以怎樣解決才好,這10萬個原有已知的黑名單放在哪里好???求知道的大神給一點建議,謝謝了
uj5u.com熱心網友回復:
查資料庫簡單,但不適合此場景,把黑名單放到記憶體做成快取,小心設計,10萬的并發量,不是小數目了。uj5u.com熱心網友回復:
搞個記憶體資料庫輕輕松松uj5u.com熱心網友回復:
去了解一下redis吧,目前比較主流的快取中間件,可以做很多你意想不到的事。只要你記憶體夠,再大的資料量也是小問題uj5u.com熱心網友回復:
用戶轉換為整數的userid,4位元組應該足夠,不行就8位元組。就算1000w個也10M*8,80M記憶體而已,放在一個hashset中,記憶體占用不會超過100M,判斷是否黑名單客戶,幾十個cpu周期就查到可以放在最前端接數處理時候就將黑名單用戶排除
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/56667.html
標籤:Java相關
上一篇:Java gui做一個檔案閱讀器
下一篇:這個面試題怎么回答?
