Class: RedQueen::Client
- Inherits:
-
Object
- Object
- RedQueen::Client
- Defined in:
- lib/redqueen/client.rb
Instance Method Summary collapse
- #get(key) ⇒ Object
-
#initialize(prefix, client) ⇒ Client
constructor
A new instance of Client.
- #mget(keys) ⇒ Object
- #mset(hash) ⇒ Object
- #prefix(key) ⇒ Object
- #select(index) ⇒ Object
- #set(key, value) ⇒ Object
- #unpack(item) ⇒ Object
- #zadd(key, *args) ⇒ Object
- #zinterstore(key, sources) ⇒ Object
- #zrange(key, start, finish) ⇒ Object
- #zrevrange(key, start, finish) ⇒ Object
Constructor Details
#initialize(prefix, client) ⇒ Client
Returns a new instance of Client.
3 4 5 6 |
# File 'lib/redqueen/client.rb', line 3 def initialize prefix, client @prefix = prefix @client = client end |
Instance Method Details
#get(key) ⇒ Object
8 9 10 |
# File 'lib/redqueen/client.rb', line 8 def get key unpack @client.get prefix(key) end |
#mget(keys) ⇒ Object
12 13 14 15 |
# File 'lib/redqueen/client.rb', line 12 def mget keys return [] if keys.nil? or keys.empty? @client.mget(keys.map{|k| prefix(k)}).map{|v| unpack(v)} end |
#mset(hash) ⇒ Object
21 22 23 |
# File 'lib/redqueen/client.rb', line 21 def mset hash @client.mset hash.flat_map{|k, v| [prefix(k), v.to_msgpack]} end |
#prefix(key) ⇒ Object
45 46 47 |
# File 'lib/redqueen/client.rb', line 45 def prefix key [@prefix, key].join(':') end |
#select(index) ⇒ Object
41 42 43 |
# File 'lib/redqueen/client.rb', line 41 def select index @client.select index end |
#set(key, value) ⇒ Object
17 18 19 |
# File 'lib/redqueen/client.rb', line 17 def set key, value @client.set prefix(key), value.to_msgpack end |
#unpack(item) ⇒ Object
49 50 51 52 |
# File 'lib/redqueen/client.rb', line 49 def unpack item return nil if item.nil? MessagePack.unpack item end |
#zadd(key, *args) ⇒ Object
25 26 27 |
# File 'lib/redqueen/client.rb', line 25 def zadd key, *args @client.zadd prefix(key), args.flatten.map{|item| [item[:score], item[:member].to_msgpack]} end |
#zinterstore(key, sources) ⇒ Object
37 38 39 |
# File 'lib/redqueen/client.rb', line 37 def zinterstore key, sources @client.zinterstore prefix(key), sources.map{|s| prefix(s)} end |
#zrange(key, start, finish) ⇒ Object
29 30 31 |
# File 'lib/redqueen/client.rb', line 29 def zrange key, start, finish @client.zrange(prefix(key), start, finish).map{|i| unpack(i)} end |
#zrevrange(key, start, finish) ⇒ Object
33 34 35 |
# File 'lib/redqueen/client.rb', line 33 def zrevrange key, start, finish @client.zrevrange(prefix(key), start, finish).map{|i| unpack(i)} end |