public
Fork of cliffmoon/eventedcache
Description: A memcache client implementation that uses eventmachine
Homepage:
Clone URL: git://github.com/tmm1/eventedcache.git
tmm1 (author)
Thu Feb 12 14:34:42 -0800 2009
commit  3edbbbda2360bcf0d64768c92f6802b60ede5469
tree    84d4854183ce9a842e7323e7cb654fe1738c8297
parent  8576be2a799cc4a9f003104e2ace06aa346fb336
name age message
file .gitignore Sat Jan 10 21:25:35 -0800 2009 added conftest dir to ignore [cliffmoon]
file README Thu Feb 12 14:34:42 -0800 2009 Add example to README [tmm1]
file Rakefile Sat Jan 10 21:25:57 -0800 2009 rake tasks [cliffmoon]
directory ext/ Mon Jan 12 23:21:46 -0800 2009 refactor free location. added wrappers for is ... [cliffmoon]
directory fixtures/ Sat Jan 10 20:37:17 -0800 2009 first draft of the memcache parser. supports v... [cliffmoon]
directory lib/ Thu Feb 12 14:34:13 -0800 2009 Add set command [tmm1]
directory spec/ Mon Jan 12 23:23:20 -0800 2009 an em connection handler and the specs [cliffmoon]
directory tasks/ Sat Jan 10 21:25:57 -0800 2009 rake tasks [cliffmoon]
README
EventedCache is an eventmachine based memcache client.  It should be ultrafast and scalable since it leverages the power 
of ragel to parse memcache protocol and the scalability of eventmachine.

EM.run{

  # connect to memcached
  cache = EventedCache.connect('localhost', 11211)

  # set a value that expires in 1 second
  cache.set('key', 'hello!', 1)

  # read the value
  cache.get('key'){ |val|
    # val.data == 'hello!'
    puts val.data
  }

  # wait for it to expire and read it again
  EM.add_timer(2){
    cache.get('key'){ |val|
      # val == nil
      puts val
    }
  }

}