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-MemCache
Bulk updating Gem source index for: http://gems.rubyforge.org
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 '198.51.100.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 '198.51.100.100:11211:3'
To add servers to an existing list, you can append them directly
to the MemCache
object:
memc += ["198.51.100.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 hash
pairs . |
add() |
Generic add() . |
replace() |
Generic replace() . |
delete() |
Generic delete() . |
incr() |
Generic incr() . |
decr() |
Generic decr() . |