INTRODUCTION

Evented Memcache Client is a memcache client written for Ruby’s EventMachine. It implements a full (though simple) memcache client.

INSTALLATION

You’ll need eventmachine:

sudo gem install eventmachine

Then:

sudo gem install evented-memcache-client

Naturally a running memcache or starling is needed too. I use starling:

sudo gem install starling
sudo starling -p 12345

USAGE

Here is a producer:

require 'rubygems'
require 'eventmachine'
require 'evented-memcache-client'

callbacks = {
  :open => Proc.new { |conn|
    conn.set(:key => 'x', :data => Time.now.to_s)
  },
  :stored => Proc.new { |conn, data, args|
    puts "Stored a value"
    EventMachine::stop
  },
}
EventMachine::run {
  EventMachine::connect('127.0.0.1',
                        12345,
                        EventMachine::Protocols::Memcache::Client,
                        callbacks)
}

And here is a consumer:

require 'rubygems'
require 'eventmachine'
require 'evented-memcache-client'

callbacks = {
  :open => Proc.new { |conn|
    puts 'Opened connection.  Fetching...'
    conn.get(:key => 'x')
  },
  :value => Proc.new { |conn, data, args|
    key       = args[0]
    flags     = args[1]
    puts "Received message: '#{data}'"
    puts 'Fetching more...'
    conn.get(:key => 'x')
  }
}
EventMachine::run {
  EventMachine::connect('127.0.0.1',
                        12345,
                        EventMachine::Protocols::Memcache::Client,
                        callbacks)
}

TODO

Needs a test suite.