public interface ACRankingMgr
限定符和类型 | 方法和说明 |
---|---|
ACRankingValue |
get(java.lang.String key,
java.lang.String period,
long timestamp,
java.lang.String order)
获取当前用户指定排行周期内(比如当天)的分值和排名
|
void |
inc(java.lang.String key,
long timestamp,
double score)
增加或减少当前用户的分值(原有分值进行累加),如果存在多个排行周期,全部累加更新
用于数据累积类排行榜,比如记步,游戏积分等,不能和覆盖类排行榜的set接口混用.
|
ACRankingCount |
rangeCount(java.lang.String period,
long timestamp,
double startScore,
double endScore)
获取指定某个排行周期(比如当天)符合分值范围内所有用户的总数
如 rangeCount(0, "day", 100, 200) 代表查询当天value在100-200的用户总数
|
java.util.List<ACRankingValue> |
ranks(java.lang.String key,
java.lang.String period,
long timestamp,
long count,
java.lang.String order)
批量获取当前用户连续多排行周期内(比如上周每天)分值和排名等历史数据
如取用户(userId = 1)最近5天的排行数据(value以正序方式排名),则使用 ranks("1", "day", 0, 5, "ASC")
如取用户(userId = 1)上一周每天的排行数据,则使用 ranks("1", "day", (System.currentTimeMillis() / 1000 - 7 * 24 * 60 * 60L), 7, "ASC")
|
java.util.List<ACRankingValue> |
scan(java.lang.String period,
long timestamp,
long startRank,
long endRank,
java.lang.String order)
获取指定排行周期内(比如当天)所有用户的score分值和rank排名等数据
|
void |
set(java.lang.String key,
long timestamp,
double score)
设置更新当前用户分值(原有分值会被覆盖),如果存在多个排行周期,都会只保留最后一次分值
用于数据覆盖类排行榜,比如空气质量,体重测量等,不能和累积类排行榜的inc接口混用.
|
ACRankingCount |
totalCount(java.lang.String period,
long timestamp)
获取指定某个排行周期内(比如当天)的所有参与排行的用户总数
如totalCount("day", 0) 代表查询当天的用户总数
如当前时间为12:30, totalCount("hour", 0) 代表查询12:00-13:00的用户总数
|
void inc(java.lang.String key, long timestamp, double score) throws java.lang.Exception
key
- 排行榜大部分情况下以用户为单位,所以此处一般为userIdtimestamp
- 时间点,如果为0,则表示当前时间(单位秒,UTC时间戳,相对于1970年的秒数)score
- 当前用户增加/减少的分值java.lang.Exception
void set(java.lang.String key, long timestamp, double score) throws java.lang.Exception
key
- 排行榜大部分情况下以用户为单位,所以此处一般为userIdtimestamp
- 时间点,如果为0,则表示当前时间(单位秒,UTC时间戳,相对于1970年的秒数)score
- 更新分值java.lang.Exception
ACRankingValue get(java.lang.String key, java.lang.String period, long timestamp, java.lang.String order) throws java.lang.Exception
key
- 排行榜大部分情况下以用户为单位,所以此处一般为userIdperiod
- 时间间隔 (minute, hour, day, week, month)timestamp
- 时间点,如果为0,则表示当前时间(UTC时间戳,相对于1970年的秒数)order
- 排序方式: ASC(正序), DESC(逆序)java.lang.Exception
java.util.List<ACRankingValue> ranks(java.lang.String key, java.lang.String period, long timestamp, long count, java.lang.String order) throws java.lang.Exception
key
- 排行榜大部分情况下以用户为单位,所以此处一般为userIdperiod
- 时间间隔 (minute,hour,day,week,month)timestamp
- 时间点,如果为0,则表示当前时间(UTC时间戳,相对于1970年的秒数)count
- 向前取连续count个period周期order
- 排序方式: ASC(正序), DESC(逆序)java.lang.Exception
ACRankingCount totalCount(java.lang.String period, long timestamp) throws java.lang.Exception
period
- 时间间隔(minute, hour, day, week, month)timestamp
- 时间点,如果为0,则表示当前时间(UTC时间戳,相对于1970年的秒数)java.lang.Exception
java.util.List<ACRankingValue> scan(java.lang.String period, long timestamp, long startRank, long endRank, java.lang.String order) throws java.lang.Exception
period
- 时间间隔 (minute, hour, day, week, month)timestamp
- 时间点,如果为0,则表示当前时间(UTC时间戳,相对于1970年的秒数)startRank
- 排名的起始名次 (闭区间,包含startRank)endRank
- 排名的结束名次 (闭区间,包含endRank)order
- 排序方式: ASC(正序), DESC(逆序)java.lang.Exception
ACRankingCount rangeCount(java.lang.String period, long timestamp, double startScore, double endScore) throws java.lang.Exception
period
- 时间间隔 (minute, hour, day, week, month)timestamp
- 时间点,如果为0,则表示当前时间(UTC时间戳,相对于1970年的秒数)startScore
- 开始值 (闭区间,包含start)endScore
- 结束值 (闭区间,包含end)java.lang.Exception