同一個用戶不管點擊某件商品多少次,都只統計為1,實時統計商品點擊數.
此種情況下怎樣做到最優方案
我現在想到的只是使用redis
的set
數據類型,每次點擊都使用redis
存一下,因為set
是不能重複的,所以直接SCARD
一下,總數就算出來了,然後一段時間再持久化到數據庫.但是如果以後數據量很大,佔用記憶體也會很恐怖吧.大家有沒有別的解決方案.
坐等!!!
同一個用戶不管點擊某件商品多少次,都只統計為1,實時統計商品點擊數.
此種情況下怎樣做到最優方案
我現在想到的只是使用redis
的set
數據類型,每次點擊都使用redis
存一下,因為set
是不能重複的,所以直接SCARD
一下,總數就算出來了,然後一段時間再持久化到數據庫.但是如果以後數據量很大,佔用記憶體也會很恐怖吧.大家有沒有別的解決方案.
坐等!!!
如果不需要非常精準的情況下,且不需要知道哪些使用者瀏覽了商品,可以考慮HyperLogLog
pfadd shop:{$good_id} user:{$user_id}
另外phpredis的擴充要更新至2.2.7才能使用
<code class="php">$redis->pfadd("key", array( $element1, $element2, ..., $elementN) );</code>
相關參考資料:Redis基數統計-HyperLogLog小記憶體大用處
能有多大?不是有進有出麼,實在不行機器麼
有進有出,在出的時候刷資料進資料庫時存完數字順便把使用者商品點擊關係保存下來,下次出的時候檢驗。