實現排行榜功能

分別使用MongoDB和Redis的有序集合來實現排行榜功能。對比傳統數據庫的排序功能,尋找有序集合實現排序功能的優勢。redis

圖片.png

具體到一個實際例子,好比說直播網站觀衆向主播送禮物的排行版,若是直接在數據庫裏面進行排序, 弊端有如下幾點:
    • 排行榜會實時更新,數據每一次變化都要排序,會對數據庫的性能形成影響。. 頻繁更新數據,致使數據庫性能降低。
    • 數據量太大時排序時間緩慢。
    • 對被排序字段添加索引會佔用更多空間。數據庫

使用redis有序集合進行排序:ide

    (1).直接把MongoDB中的數據導入到Redis中名爲rank的有序集合中:性能

        圖片.png

        圖片.png

    (2).顯示某一個特定用戶的排名,具體代碼以下:網站

        圖片.png

    (3).顯示所有用戶的排名,具體代碼以下:排序

        圖片.png

    (4).運行效果:索引

        圖片.png


    有序集合具備惟一性(假設rk爲排行榜名稱,user一、user2等爲玩家惟一標識)。score能夠相同
圖片

        圖片.png

相關文章
相關標籤/搜索