Methods
Public Class methods
[ show source ]
# File lib/glue/cache/memcached.rb, line 22
22: def initialize(name = "cache", keepalive = nil)
23: @sock = TCPSocket.new(MemCached.address, MemCached.port)
24: @name = name
25: @keepalive = keepalive
26: end
Public Instance methods
This method is also aliased as
get
[ show source ]
# File lib/glue/cache/memcached.rb, line 42
42: def [](k)
43: @sock.print("get #{@name}:#{k}\r\n")
44: resp = @sock.gets
45: if resp == "END\r\n"
46: return nil
47: end
48:
49: #dummy, key, flags, size
50: size = resp.split(/ /).last.to_i
51: raw_data = @sock.read(size)
52: @sock.gets # \r\n
53: @sock.gets # END\r\n
54: Marshal.load( raw_data )
55: end
This method is also aliased as
set
[ show source ]
# File lib/glue/cache/memcached.rb, line 28
28: def []=(k,v)
29: if @keepalive
30: exptime = (Time.now + @keepalive).to_i
31: else
32: exptime = 0
33: end
34:
35: data = Marshal.dump(v)
36: @sock.print("set #{@name}:#{k} 0 #{exptime} #{data.size}\r\n#{data}\r\n")
37: response = @sock.gets # "STORED\r\n"
38: v
39: end
[ show source ]
# File lib/glue/cache/memcached.rb, line 58
58: def delete(k)
59: @sock.print("delete #{@name}:#{k}\r\n")
60: @sock.gets # "DELETED\r\n"
61: end
[ show source ]
# File lib/glue/cache/memcached.rb, line 63
63: def gc!
64: # garbage collection is handled by the memcache server
65: end