-
-
06 Feb 2016 13:55:46 UTC
- Distribution: Redis-LeaderBoard
- Module version: 1.11
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues
- Testers (533 / 20 / 0)
- Kwalitee
Bus factor: 1- License: perl_5
- Perl: v5.8.1
- Activity
24 month- Tools
- Download (12.57KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Mouse
- Redis
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- NAME
- SYNOPSIS
- DESCRIPTION
- INTERFACE
- Constructor
- Methods
- $member_obj:Redis::LeaderBoard::Member = $lb->find_member($member:Str)
- $lb->set_score($member:Str, $score:Number, [$member2, $score2,...])
- $score:Number = $lb->get_score($member:Str)
- $score:Number = $lb->incr_score($member:Str, [$increment_score:Number])
- $score:Number = $lb->decr_score($member:Str, [$decrement_score:Number])
- $lb->remove($member:Str, [$member2:Str,...])
- ($rank:Int, $score:Number) = $lb->get_rank_with_score($member:Str)
- $rank:Int = $lb->get_rank($member:Str)
- $order:Int = $lb->get_sorted_order($member:Str)
- $count = $lb->member_count([$from, $to])
- $rankings:ArrayRef<HashRef> = $lb->rankings(%opt)
- LICENSE
- AUTHOR
NAME
Redis::LeaderBoard - leader board using Redis
SYNOPSIS
use Redis; use Redis::LeaderBoard; my $redis = Redis->new; my $lb = Redis::LeaderBoard->new( redis => $redis, key => 'leader_board:1', order => 'asc', # asc/desc, desc as default ); $lb->set_score('one' => 100'); $lb->set_score('two' => 50'); my ($rank, $score) = $lb->get_rank_with_score('one'); # memmber object my $member = $lb->find_member('two'); $member->score(90); my $rank2 = $member->rank;
DESCRIPTION
Redis::LeaderBoard is for providing leader board by using Redis's sorted set.
z(rev)?rank of Redis 2.8 or older doesn't consider same scores. This module resolve it.
INTERFACE
Constructor
my $lb = Redis::LeaderBoard->new(%options)
Create a new leader board object. Options should be set in
%options
.redis: Redis
-
Redis object. Redis.pm or Redis::hiredis.
key: Str
-
Required.
order: Enum(asc/desc)
-
Optional.
desc
as default.
Methods
$member_obj:Redis::LeaderBoard::Member = $lb->find_member($member:Str)
Find member by member id. see Redis::LeaderBoard::Member for more details.
$lb->set_score($member:Str, $score:Number, [$member2, $score2,...])
Set scores of members. You can set multiple element if using Redis 2.4 or later.
$score:Number = $lb->get_score($member:Str)
Get score of member.
$score:Number = $lb->incr_score($member:Str, [$increment_score:Number])
increment score of member and returns reflected score. 1 is default
$increment_score
.$score:Number = $lb->decr_score($member:Str, [$decrement_score:Number])
decrement score of member and returns reflected score. 1 is default
$decrement_score
.$lb->remove($member:Str, [$member2:Str,...])
remove members from leader board. Multiple element can be accepted Redis 2.4 or later.
($rank:Int, $score:Number) = $lb->get_rank_with_score($member:Str)
Returns rank and score. If you want to get rank and score at the same time, you should not call
get_score
andget_rank
separately, use this method instead for performance.$rank:Int = $lb->get_rank($member:Str)
Get rank of member.
$order:Int = $lb->get_sorted_order($member:Str)
Get sorted order in sorted set. (same as
$redis->zrank
)$count = $lb->member_count([$from, $to])
Get number of members. If score range (
$from
and$to
) is specified, it returns a number of members in range.$rankings:ArrayRef<HashRef> = $lb->rankings(%opt)
Return rankings by arrayref contains hashrefs. keys of hashref is
member:Str
,rank:Int
andscore:Number
.Options can be set in
%options
. keys of options are as follows.LICENSE
Copyright (C) Masayuki Matsuki.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Masayuki Matsuki <y.songmu@gmail.com>
Module Install Instructions
To install Redis::LeaderBoard, copy and paste the appropriate command in to your terminal.
cpanm Redis::LeaderBoard
perl -MCPAN -e shell install Redis::LeaderBoard
For more information on module installation, please visit the detailed CPAN module installation guide.