Module | EventMachine::Protocols::Memcache |
In: |
lib/protocols/memcache.rb
|
Implements the Memcache protocol (code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt). Requires memcached >= 1.2.4 w/ noreply support
EM.run{ cache = EM::P::Memcache.connect 'localhost', 11211 cache.set :a, 'hello' cache.set :b, 'hi' cache.set :c, 'how are you?' cache.set :d, '' cache.get(:a){ |v| p v } cache.get_hash(:a, :b, :c, :d){ |v| p v } cache.get(:a,:b,:c,:d){ |a,b,c,d| p [a,b,c,d] } cache.get(:a,:z,:b,:y,:d){ |a,z,b,y,d| p [a,z,b,y,d] } cache.get(:missing){ |m| p [:missing=, m] } cache.set(:missing, 'abc'){ p :stored } cache.get(:missing){ |m| p [:missing=, m] } cache.del(:missing){ p :deleted } cache.get(:missing){ |m| p [:missing=, m] } }
Cstored | = | 'STORED'.freeze |
Cend | = | 'END'.freeze |
Cdeleted | = | 'DELETED'.freeze |
Cunknown | = | 'NOT_FOUND'.freeze |
Cerror | = | 'ERROR'.freeze |
Cempty | = | ''.freeze |
Cdelimiter | = | "\r\n".freeze |
19Feb09 Switched to a custom parser, LineText2 is recursive and can cause
stack overflows when there is too much data.
include EM::P::LineText2