2015-01-16 28 views
0

在某個遊戲中,用戶保持得分。我如何在redis中保持這一點?我應該使用什麼結構來獲得最高分的用戶

得分模式如下

u1, 1 
u2, 1 
u1, 1 
u3, 1 
u4, 1 
u5, 1 
u4, 1 
u4, 1 
u1, 1 
u4, 1 
u2, 1 

我希望Redis的迴歸,我被領導者每次我們在Redis的投入結構時希望結果自動分類。

u4, 4 
u1, 3 
u2, 2 
u3, 1 
u5, 1 

我該如何通過redis獲取/放置/檢索?

回答

1

要構建類似用戶評分的內容,請使用排序集(也稱爲zset),它在數據旁邊保留分數。 如果需要,您將能夠按順序或反向順序檢索用戶。看到這裏的命令的完整文檔:http://redis.io/commands#sorted_set

+0

你能告訴我一組確切的命令,我應該使用和獲取最終集合。 zset已棄用? – Rpj

+0

我仍然無法使用ZADD,ZRANGE命令進行排序。 – Rpj

+0

要將用戶添加到排序集中,請使用如下命令:'zadd users 4 u1'。這將添加一個名爲u1的項目(用戶),並將分數4添加到zsetùsers'中。要檢索用戶分數從最高到最低,請執行以下操作:'zrevrange users 0 -1''這將以降序檢索所有用戶。如果你需要分數,並加入參數'WITHSCORES',就像這樣:'zrevrange users 0 -1 WITHSCORES' – Exinferis

相關問題