Redis Zset實現排行榜功能

2021-10-03 20:35:30 字數 681 閱讀 5163

使用redis 的zset資料結構 首先搞清楚zset 新增儲存的命令 對理解和設計排行榜起到至關重要的作用

zadd key value1 member1 value2 member2...
key:string型別

value:數值型別

member :string型別

zset底層根據value自動進行排序,當value相同,會根據member進行字典排序

設計思路 key作為排行榜的名字 比如 歐美榜 日韓榜

member 作為歌曲名稱 value作為歌曲分數

搞清楚自己的設計思路,其他都是操作命令的事了

下面列舉一些自己在做排行榜時,設計到的其他操作命令

zrange key 0 -1 遍歷該key下的所有member(由低到高)

zrevrange key 0 -1 遍歷該key下的所有member(由高到低)

zremrangebyrank key star(long) stop(long) 移除 公升序key中某個範圍外的 值(包含star和stop)

zscore key member 獲取key中member的分數

zremrangebyscore key min max 移除key中分數在min 和max之間的值

如有錯誤,還望指正

redis zset做排行榜

直播運營活動中經常會有這樣的需求,根據使用者送禮情況做排名。這個排行榜具有以下特點 使用者每次請求會返回使用者的排名 送禮金額越多粉絲排名越靠前 相同金額送禮越早越靠前 排行榜會隨著粉絲送禮變化而不斷變化 表結構 create table user id int 10 not null commen...

mysql製作排行榜 mysql實現排行榜

博主新人一枚,大家可以提出自己的寶貴意見。下來我們進入正題。大家首先要了解介面的場景,再就是排行榜的規則,我們這裡說的中國式排行榜。排行榜總結了一下分為3種 中國式排行 非中國式排行1 非中國式排行2 1 1 1 2 2 2 2 2 3 3 4 4 3 5 5 4 5 6 5 7 7 select ...

redis實現排行榜

排行榜功能是乙個很普遍的需求。設想在乙個遊戲中,有上百萬的玩家資料,如果現在需要你根據玩家的經驗值整理乙個前20名的排行榜,你會怎麼做呢?你不可能 order by limit 去實現 select from game socre order by score desc limit 0,20 使用 ...