class Familia::SortedSet
Public Instance Methods
[]=(v, score)
click to toggle source
NOTE: The argument order is the reverse of add e.g. obj.metrics = SCORE
# File lib/familia/redisobject.rb, line 633 def []= v, score add score, v end
add(score, v)
click to toggle source
NOTE: The argument order is the reverse of []=
# File lib/familia/redisobject.rb, line 638 def add score, v ret = redis.zadd rediskey, score, to_redis(v) update_expiration ret end
at(idx)
click to toggle source
# File lib/familia/redisobject.rb, line 785 def at idx range(idx, idx).first end
collect(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 699 def collect &blk members.collect &blk end
collectraw(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 715 def collectraw &blk membersraw.collect &blk end
decrement(v, by=1)
click to toggle source
# File lib/familia/redisobject.rb, line 772 def decrement v, by=1 increment v, -by end
delete(v)
click to toggle source
# File lib/familia/redisobject.rb, line 778 def delete v redis.zrem rediskey, to_redis(v) end
each(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 691 def each &blk members.each &blk end
each_with_index(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 695 def each_with_index &blk members.each_with_index &blk end
eachraw(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 707 def eachraw &blk membersraw.each &blk end
eachraw_with_index(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 711 def eachraw_with_index &blk membersraw.each_with_index &blk end
empty?()
click to toggle source
# File lib/familia/redisobject.rb, line 627 def empty? size == 0 end
first()
click to toggle source
Return the first element in the list. Redis: ZRANGE(0)
# File lib/familia/redisobject.rb, line 790 def first at(0) end
increment(v, by=1)
click to toggle source
# File lib/familia/redisobject.rb, line 766 def increment v, by=1 redis.zincrby(rediskey, by, v).to_i end
last()
click to toggle source
Return the last element in the list. Redis: ZRANGE(-1)
# File lib/familia/redisobject.rb, line 795 def last at(-1) end
member?(v)
click to toggle source
# File lib/familia/redisobject.rb, line 650 def member? v !rank(v).nil? end
Also aliased as: include?
members(count=-1, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 667 def members count=-1, opts={} count -= 1 if count > 0 el = membersraw count, opts multi_from_redis *el end
membersraw(count=-1, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 675 def membersraw count=-1, opts={} count -= 1 if count > 0 rangeraw 0, count, opts end
range(sidx, eidx, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 723 def range sidx, eidx, opts={} echo :range, caller[0] if Familia.debug el = rangeraw(sidx, eidx, opts) multi_from_redis *el end
rangebyscore(sscore, escore, opts={})
click to toggle source
e.g. obj.metrics.rangebyscore (now-12.hours), now, :limit => [0, 10]
# File lib/familia/redisobject.rb, line 746 def rangebyscore sscore, escore, opts={} echo :rangebyscore, caller[0] if Familia.debug el = rangebyscoreraw(sscore, escore, opts) multi_from_redis *el end
rangebyscoreraw(sscore, escore, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 752 def rangebyscoreraw sscore, escore, opts={} echo :rangebyscoreraw, caller[0] if Familia.debug opts[:with_scores] = true if opts[:withscores] redis.zrangebyscore(rediskey, sscore, escore, opts) end
rangeraw(sidx, eidx, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 729 def rangeraw sidx, eidx, opts={} opts[:with_scores] = true if opts[:withscores] redis.zrange(rediskey, sidx, eidx, opts) end
rank(v)
click to toggle source
rank of member v
when ordered lowest to highest (starts at 0)
# File lib/familia/redisobject.rb, line 656 def rank v ret = redis.zrank rediskey, to_redis(v) ret.nil? ? nil : ret.to_i end
remrangebyrank(srank, erank)
click to toggle source
# File lib/familia/redisobject.rb, line 758 def remrangebyrank srank, erank redis.zremrangebyrank rediskey, srank, erank end
remrangebyscore(sscore, escore)
click to toggle source
# File lib/familia/redisobject.rb, line 762 def remrangebyscore sscore, escore redis.zremrangebyscore rediskey, sscore, escore end
revmembers(count=-1, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 680 def revmembers count=-1, opts={} count -= 1 if count > 0 el = revmembersraw count, opts multi_from_redis *el end
revmembersraw(count=-1, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 686 def revmembersraw count=-1, opts={} count -= 1 if count > 0 revrangeraw 0, count, opts end
revrange(sidx, eidx, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 734 def revrange sidx, eidx, opts={} echo :revrange, caller[0] if Familia.debug el = revrangeraw(sidx, eidx, opts) multi_from_redis *el end
revrangeraw(sidx, eidx, opts={})
click to toggle source
# File lib/familia/redisobject.rb, line 740 def revrangeraw sidx, eidx, opts={} opts[:with_scores] = true if opts[:withscores] redis.zrevrange(rediskey, sidx, eidx, opts) end
revrank(v)
click to toggle source
rank of member v
when ordered highest to lowest (starts at 0)
# File lib/familia/redisobject.rb, line 662 def revrank v ret = redis.zrevrank rediskey, to_redis(v) ret.nil? ? nil : ret.to_i end
score(v)
click to toggle source
# File lib/familia/redisobject.rb, line 644 def score v ret = redis.zscore rediskey, to_redis(v) ret.nil? ? nil : ret.to_f end
Also aliased as: []
select(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 703 def select &blk members.select &blk end
selectraw(&blk)
click to toggle source
# File lib/familia/redisobject.rb, line 719 def selectraw &blk membersraw.select &blk end
size()
click to toggle source
# File lib/familia/redisobject.rb, line 622 def size redis.zcard rediskey end
Also aliased as: length