Class: Opod::MemCached
- Inherits:
-
Object
- Object
- Opod::MemCached
- Defined in:
- lib/opod/memcached.rb
Instance Method Summary collapse
- #[](k) ⇒ Object (also: #get)
- #[]=(k, v) ⇒ Object (also: #set)
- #delete(k) ⇒ Object
- #gc! ⇒ Object
-
#initialize(name = "cache", keepalive = nil) ⇒ MemCached
constructor
A new instance of MemCached.
Constructor Details
#initialize(name = "cache", keepalive = nil) ⇒ MemCached
Returns a new instance of MemCached.
22 23 24 25 26 |
# File 'lib/opod/memcached.rb', line 22 def initialize(name = "cache", keepalive = nil) @sock = TCPSocket.new(MemCached.address, MemCached.port) @name = name @keepalive = keepalive end |
Instance Method Details
#[](k) ⇒ Object Also known as: get
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/opod/memcached.rb', line 42 def [](k) @sock.print("get #{@name}:#{k}\r\n") resp = @sock.gets if resp == "END\r\n" return nil end #dummy, key, flags, size size = resp.split(/ /).last.to_i raw_data = @sock.read(size) @sock.gets # \r\n @sock.gets # END\r\n Marshal.load( raw_data ) end |
#[]=(k, v) ⇒ Object Also known as: set
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/opod/memcached.rb', line 28 def []=(k,v) if @keepalive exptime = (Time.now + @keepalive).to_i else exptime = 0 end data = Marshal.dump(v) @sock.print("set #{@name}:#{k} 0 #{exptime} #{data.size}\r\n#{data}\r\n") response = @sock.gets # "STORED\r\n" v end |
#delete(k) ⇒ Object
58 59 60 61 |
# File 'lib/opod/memcached.rb', line 58 def delete(k) @sock.print("delete #{@name}:#{k}\r\n") @sock.gets # "DELETED\r\n" end |
#gc! ⇒ Object
63 64 65 |
# File 'lib/opod/memcached.rb', line 63 def gc! # garbage collection is handled by the memcache server end |