NBA籃球圖文直播室之數據排行榜

NBA籃球圖文直播室之數據排行榜

作者:張子良

1.1 業務規則

球員數據排行榜,實時顯示兩隊各項技術參數最高的球員信息,技術參數包括得分、籃板、助攻、搶斷、蓋帽、出場時間、失誤和規次數。如下圖所示:

圖1:數據排行榜

1.2 技術選型

Redis提供當前版本提供四種數據類型stringlistsetzsethash,其中string爲基礎類型,其它四種爲擴展類型。每種數據類型都有其適用的特定場景,在這裏我們選擇zset作爲數據排行榜數據信息存儲的載體,主要是考慮到它所提供的自動排序功能。zset提供的主要的操作命令如下表所示:

表1:zset命令清單

序號

命令

功能

1

zadd(key, score, member)

向名稱爲keyzset中添加元素memberscore用於排序。如果該元素已經存在,則根據score更新該元素的順序。

2

zrem(key, member)

刪除名稱爲keyzset中的元素member

3

zincrby(key, increment, member)

如果在名稱爲keyzset中已經存在元素member,則該元素的score增加increment;否則向集合中添加該元素,其score的值爲increment

4

zrank(key, member)

返回名稱爲keyzset(元素已按score從小到大排序)中member元素的rank(即index,從0開始),若沒有member元素,返回“nil

5

zrevrank(key, member)

返回名稱爲keyzset(元素已按score從大到小排序)中member元素的rank(即index,從0開始),若沒有member元素,返回“nil

6

zrange(key, start, end)

返回名稱爲keyzset(元素已按score從小到大排序)中的indexstartend的所有元素

7

zrevrange(key, start, end)

返回名稱爲keyzset(元素已按score從大到小排序)中的indexstartend的所有元素

8

zrangebyscore(key, min, max)

返回名稱爲keyzsetscore >= minscore <= max的所有元素

9

zcard(key)

返回名稱爲keyzset的基數

10

zscore(key, element)

返回名稱爲keyzset中元素elementscore

11

zremrangebyrank(key, min, max)

刪除名稱爲keyzsetrank >= minrank <= max的所有元素

12

zremrangebyscore(key, min, max)

刪除名稱爲keyzsetscore >= minscore <= max的所有元素

13

zunionstore / zinterstore(dstkeyN, key1,…,keyN,  WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX)

Nzset求並集和交集,並將最後的集合保存在dstkeyN中。對於集合中每一個元素的score,在進行AGGREGATE運算前,都要乘以對於WEIGHT參數。如果沒有提供WEIGHT,默認爲1。默認的AGGREGATESUM,即結果集合中元素的score是所有集合對應元素進行 SUM運算的值,而MINMAX是指,結果集合中元素的score是所有集合對應元素中最小值和最大值。

1.3 存儲設計

以每一項技術參數作爲一個關鍵字,以每一個隊員球衣號碼爲一個Member,以技術參數值爲SCORE。需要統計的技術參數包括得分、籃板、助攻、搶斷、蓋帽、出場時間、失誤和犯規次數。按照NBA籃球比賽規則,單場比賽最多允許15名隊員出場(常規賽區別於季後賽),每個關鍵字,最多包含15Member。關鍵字清單列表如下所示:

表2:關鍵字清單

序號

KEY

備註

1

NBA.YYMMDD.XX.HOST. MAX .SCORE

主隊最高得分

2

NBA.YYMMDD.XX.HOST. MAX.BORAD

主隊最高籃板球

3

NBA.YYMMDD.XX.HOST. MAX. ASSIST

主隊最多助攻

4

NBA.YYMMDD.XX.HOST. MAX. STEAL

搶斷

5

NBA.YYMMDD.XX.HOST. MAX. BSHOT

蓋帽

6

NBA.YYMMDD.XX.HOST. MAX.TIME

出場時間

7

NBA.YYMMDD.XX.HOST. MAX. FAILD

失誤

8

NBA.YYMMDD.XX.HOST. MAX. FOUL

犯規次數

備註:此處只列出主隊關鍵字,客隊關鍵字只有直接使用GUEST替換HOST即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章