Spec-Zone .ru
спецификации, руководства, описания, API

15.6.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 http://www.deveiate.org/projects/RMemCache.

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-MemCacheBulk updating Gem source index for: http://gems.rubyforge.orgInstall required dependency io-reactor? [Yn]  ySuccessfully installed Ruby-MemCache-0.0.1Successfully installed io-reactor-0.05Installing 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 '192.168.0.100:11211'

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 '192.168.0.100:11211:3'

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

memc += ["192.168.0.101:11211"]

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 Method Equivalent 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 hashpairs.
add() Generic add().
replace() Generic replace().
delete() Generic delete().
incr() Generic incr().
decr() Generic decr().