Class: Rudis::ZSet
Instance Method Summary
collapse
Methods inherited from Structure
#del, #exists?, #expire, #expire_at, #redis_type, #rename, #ttl, #type, #watch
Methods inherited from Base
#initialize, #key, #redis
Methods inherited from Rudis
key
Constructor Details
This class inherits a constructor from Rudis::Base
Instance Method Details
#[](val) ⇒ Object
Also known as:
slice
70
71
72
73
74
75
76
|
# File 'lib/rudis/structures/zset.rb', line 70
def [](val)
if val.is_a? Range
range(val)
else
self[val..val]
end
end
|
#add(member, score = 1) ⇒ Object
Also known as:
<<
14
15
16
|
# File 'lib/rudis/structures/zset.rb', line 14
def add(member, score=1)
redis.zadd(key, score_type.put(score), type.put(member))
end
|
#all ⇒ Object
Also known as:
to_a
79
80
81
|
# File 'lib/rudis/structures/zset.rb', line 79
def all
range(0..-1)
end
|
#card ⇒ Object
Also known as:
size, length, count
36
37
38
|
# File 'lib/rudis/structures/zset.rb', line 36
def card
redis.zcard(key)
end
|
#default_options ⇒ Object
3
4
5
6
7
8
|
# File 'lib/rudis/structures/zset.rb', line 3
def default_options
{
:type => DefaultType,
:score_type => IntegerType
}
end
|
#empty? ⇒ Boolean
43
44
45
|
# File 'lib/rudis/structures/zset.rb', line 43
def empty?
card == 0
end
|
#first ⇒ Object
84
85
86
|
# File 'lib/rudis/structures/zset.rb', line 84
def first
self[0..0].first
end
|
#incr(member) ⇒ Object
27
28
29
|
# File 'lib/rudis/structures/zset.rb', line 27
def incr(member)
incrby(member, 1)
end
|
#incrby(member, i) ⇒ Object
23
24
25
|
# File 'lib/rudis/structures/zset.rb', line 23
def incrby(member, i)
redis.zincrby(key, i.to_i, member)
end
|
#last ⇒ Object
88
89
90
|
# File 'lib/rudis/structures/zset.rb', line 88
def last
self[-1..-1].first
end
|
#member?(val) ⇒ Boolean
Also known as:
include?
97
98
99
|
# File 'lib/rudis/structures/zset.rb', line 97
def member?(val)
!score(val).nil?
end
|
#range(ran) ⇒ Object
47
48
49
50
51
|
# File 'lib/rudis/structures/zset.rb', line 47
def range(ran)
redis.zrange(key, ran.first.to_i, ran.last.to_i).map do |e|
type.get(e)
end
end
|
#rangebyscore(min, max) ⇒ Object
Also known as:
range_by_score
60
61
62
63
64
65
66
67
|
# File 'lib/rudis/structures/zset.rb', line 60
def rangebyscore(min, max)
redis.zrangebyscore(key,
score_type.put(min),
score_type.put(max)
).map do |e|
type.get(e)
end
end
|
#rank(member) ⇒ Object
31
32
33
34
|
# File 'lib/rudis/structures/zset.rb', line 31
def rank(member)
i = redis.zrank(key, member)
i && i.to_i
end
|
#rem(member) ⇒ Object
19
20
21
|
# File 'lib/rudis/structures/zset.rb', line 19
def rem(member)
redis.zrem(key, type.put(member))
end
|
#revrange(ran) ⇒ Object
Also known as:
rev_range
53
54
55
56
57
|
# File 'lib/rudis/structures/zset.rb', line 53
def revrange(ran)
redis.zrevrange(key, ran.first.to_i, ran.last.to_i).map do |e|
type.get(e)
end
end
|
#score(member) ⇒ Object
92
93
94
95
|
# File 'lib/rudis/structures/zset.rb', line 92
def score(member)
s = redis.zscore(key, type.put(member))
s && score_type.get(s)
end
|
#score_type ⇒ Object
10
11
12
|
# File 'lib/rudis/structures/zset.rb', line 10
def score_type
@options[:score_type]
end
|