MutliRank
,顾名思义,就是多组合的Rank,可以把多个CounterRank
合并成一个CounterRank
,支持并集和交集。
- 并集 (可用于统计本月总排名或本年总排名)
- 交集 (可用于统计上月和本月同时上榜的人员)
$rank1 = new DateRank($redis,'activity','test', Carbon::now());
$rank2 = new DateRank($redis,'activity','test', Carbon::tomorrow());
$rank1->addRankField(1,2);
$rank1->addRankField(2,4);
$rank2->addRankField(1,2);
$mutliRank = new MutliCounterRank([$rank1,$rank2], $redis);
$rank3 = new CounterRank($redis,'activity','all');
$mutliRank->union($rank3);
var_dump($rank3->rank(0));
//结果:
array(2) {
[2] =>
double(4)
[1] =>
double(4)
}
$rank4 = new CounterRank($redis,'activity','all');
$mutliRank->inter($rank4);
var_dump($rank4->rank(0));
//结果:
/apps/webroot/production/Jrank/src/Test/TestMutliCounterRank.php:32:
array(1) {
[1] =>
double(4)
}