我在我的django網頁應用中實現了一個排行榜,但並不知道最好的方法。目前,我只是用SQL命令我的用戶,從,做一個排行榜,但是,這產生了兩個主要問題:網頁排行榜
性能是令人震驚的。我只嘗試將其擴展到幾百個用戶,但我可以告訴計算排名是緩慢的,過度緩存令人討厭,因爲我需要用戶在添加到排行榜後看到他們的排名。
幾乎不可能告訴用戶他們是什麼位置,而無需再次執行整個排行榜計算。
我還沒有部署,但我估計排行榜的排行榜大約有5%的更新與95%的閱讀(可能更多,實際上)。所以我最近的想法是每次添加用戶時都要重新計算排行榜,並且可以輕鬆地排序位置字段,而無需重新計算以顯示用戶的排名。
但是,如果多個用戶在同一時間提交,鎖定是否足夠或將排名填滿了,這可能是一個問題嗎?此外,我打算將這個單獨的數據庫專門用於這些排行榜,這是最好的?我聽到有關redis的好消息...
有沒有更好的方法來解決這個問題? (誰知道SO如何製作他們的排行榜?)
謝謝,我讀了更多關於Redis的內容,更多的是我認識到它對我的問題似乎已經得到完美的調整:P。 – paddymelon 2012-01-29 09:30:42