zoukankan      html  css  js  c++  java
  • NBA篮球图文直播室之数据排行榜设计

    1.1 业务规则

    球员数据排行榜,实时显示两队各项技术参数最高的球员信息,技术参数包括得分、篮板、助攻、抢断、盖帽、出场时间、失误和犯规次数。如下图所示:

    1.2 技术选型

    Redis提供当前版本提供四种数据类型string、list、set、zset、hash,其中string为基础类型,其它四种为扩展类型。每种数据类型都有其适用的特定场景,在这里我们选择zset作为数据排行榜数据信息存储的载体,主要是考虑到它所提供的自动排序功能。zset提供的主要的操作命令如下表所示:

    序号

    命令

    功能

    1

    zadd(key, score, member)

    向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。

    2

    zrem(key, member)

    删除名称为key的zset中的元素member

    3

    zincrby(key, increment, member)

    如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

    4

    zrank(key, member)

    返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

    5

    zrevrank(key, member)

    返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

    6

    zrange(key, start, end)

    返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素

    7

    zrevrange(key, start, end)

    返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素

    8

    zrangebyscore(key, min, max)

    返回名称为key的zset中score >= min且score <= max的所有元素

    9

    zcard(key)

    返回名称为key的zset的基数

    10

    zscore(key, element)

    返回名称为key的zset中元素element的score

    11

    zremrangebyrank(key, min, max)

    删除名称为key的zset中rank >= min且rank <= max的所有元素

    12

    zremrangebyscore(key, min, max)

    删除名称为key的zset中score >= min且score <= max的所有元素

    13

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

    对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于 的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行 SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

    1.3 存储设计

    以每一项技术参数作为一个关键字,以每一个队员球衣号码为一个Member,以技术参数值为SCORE。需要统计的技术参数包括得分、篮板、助攻、抢断、盖帽、出场时间、失误和犯规次数。按照NBA篮球比赛规则,单场比赛最多允许15名队员出场(常规赛区别于季后赛),每个关键字,最多包含15个Member。关键字清单列表如下所示:

    表1:          关键字清单

    序号

    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即可。


    作者:张子良
    出处:http://www.cnblogs.com/hadoopdev
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    了解java注解
    使用java泛型设计通用方法
    dbutils基本使用
    jquery+ajax+struts2
    c3p0连接数据库的3种方式
    ASP单步调试工具
    设置网页图片不能被用户下载或者另存为
    简单树形菜单
    GBK,GB3212 Unicode编码问题详解
    html页面乱码问题解决方法编码批量转换
  • 原文地址:https://www.cnblogs.com/hadoopdev/p/3083056.html
Copyright © 2011-2022 走看看