Class: Spymemcached

Inherits:
Object
  • Object
show all
Defined in:
lib/spymemcached.rb

Defined Under Namespace

Classes: RubyTranscoder

Instance Method Summary collapse

Constructor Details

#initialize(servers, transcoder = RubyTranscoder.new) ⇒ Spymemcached

Returns a new instance of Spymemcached.



32
33
34
35
36
37
38
# File 'lib/spymemcached.rb', line 32

def initialize(servers, transcoder = RubyTranscoder.new)
  @transcoder = transcoder
  @client     = MemcachedClient.new(servers.map do |s|
    host, port = s.split(":")
    InetSocketAddress.new(host, port.to_i)
  end)
end

Instance Method Details

#add(key, value, expiration = 0, raw = false) ⇒ Object



77
78
79
# File 'lib/spymemcached.rb', line 77

def add(key, value, expiration = 0, raw = false)
  with_timeout @client.add(key, expiration, value, transcoder(raw))
end

#append(key, value) ⇒ Object



64
65
66
# File 'lib/spymemcached.rb', line 64

def append(key, value)
  with_timeout @client.append(0, key, value)
end

#async_get(key, raw = false) ⇒ Object



48
49
50
# File 'lib/spymemcached.rb', line 48

def async_get(key, raw = false)
  @client.asyncGet(key, transcoder(raw))
end

#async_set(key, value, expiration = 0, raw = false) ⇒ Object



40
41
42
# File 'lib/spymemcached.rb', line 40

def async_set(key, value, expiration = 0, raw = false)
  @client.set(key, expiration, value, transcoder(raw))
end

#decr(key, by = 1) ⇒ Object



60
61
62
# File 'lib/spymemcached.rb', line 60

def decr(key, by = 1)
  with_timeout @client.asyncDecr(key, by)
end

#del(key) ⇒ Object Also known as: delete



81
82
83
# File 'lib/spymemcached.rb', line 81

def del(key)
  with_timeout @client.delete(key)
end

#flushObject



86
87
88
# File 'lib/spymemcached.rb', line 86

def flush
  @client.flush
end

#get(key, raw = false) ⇒ Object



52
53
54
# File 'lib/spymemcached.rb', line 52

def get(key, raw = false)
  with_timeout async_get(key, raw)
end

#incr(key, by = 1) ⇒ Object



56
57
58
# File 'lib/spymemcached.rb', line 56

def incr(key, by = 1)
  with_timeout @client.asyncIncr(key, by)
end

#multiget(keys, raw = false) ⇒ Object Also known as: get_multi



72
73
74
# File 'lib/spymemcached.rb', line 72

def multiget(keys, raw = false)
  Hash[*with_timeout(@client.asyncGetBulk(keys, transcoder(raw))).to_a.flatten]
end

#prepend(key, value) ⇒ Object



68
69
70
# File 'lib/spymemcached.rb', line 68

def prepend(key, value)
  with_timeout @client.prepend(0, key, value)
end

#set(key, value, expiration = 0, raw = false) ⇒ Object



44
45
46
# File 'lib/spymemcached.rb', line 44

def set(key, value, expiration = 0, raw = false)
  with_timeout async_set(key, value, expiration, raw)
end