MySQL HA/Scalability Guide  /  ...  /  Using MySQL and memcached with Ruby

3.3.7 Using MySQL and memcached with Ruby

There are a number of different modules for interfacing to memcached within Ruby. The Ruby-MemCache client library provides a native interface to memcached that does not require any external libraries, such as libmemcached. You can obtain the installer package from

To install, extract the package and then run install.rb:

shell> install.rb

If you have RubyGems, you can install the Ruby-MemCache gem:

shell> gem install Ruby-MemCache
Bulk updating Gem source index for:
Install required dependency io-reactor? [Yn]  y
Successfully installed Ruby-MemCache-0.0.1
Successfully installed io-reactor-0.05
Installing ri documentation for io-reactor-0.05...
Installing RDoc documentation for io-reactor-0.05...

To use a memcached instance from within Ruby, create a new instance of the MemCache object.

require 'memcache'
memc = MemCache::new ''

You can add a weight to each server to increase the likelihood of the server being selected during hashing by appending the weight count to the server host name/port string:

require 'memcache'
memc = MemCache::new ''

To add servers to an existing list, you can append them directly to the MemCache object:

memc += [""]

To set data into the cache, you can just assign a value to a key within the new cache object, which works just like a standard Ruby hash object:

memc["key"] = "value"

Or to retrieve the value:

print memc["key"]

For more explicit actions, you can use the method interface, which mimics the main memcached API functions, as summarized in the following table:

Ruby MemCache MethodEquivalent memcached API Functions
get()Generic get().
get_hash(keys)Get the values of multiple keys, returning the information as a hash of the keys and their values.
set()Generic set().
set_many(pairs)Set the values of the keys and values in the hash pairs.
add()Generic add().
replace()Generic replace().
delete()Generic delete().
incr()Generic incr().
decr()Generic decr().

Download this Manual
PDF (US Ltr) - 0.5Mb
PDF (A4) - 0.5Mb
EPUB - 394.8Kb
HTML Download (TGZ) - 367.5Kb
HTML Download (Zip) - 389.7Kb
User Comments
Sign Up Login You must be logged in to post a comment.