class MyStuff::Cache::MemcachedCache
Memcache-base cached.
If you want to use this, you know what it does.
Public Class Methods
new(memcached, options = {})
click to toggle source
Create an instance of this cache.
memcached
is a Memcached object, provided by the memcached gem.
Calls superclass method
MyStuff::Cache::Base::new
# File lib/my_stuff/cache/memcached_cache.rb, line 14 def initialize memcached, options = {} @mc = memcached super options end
Public Instance Methods
get(keys, options = {})
click to toggle source
# File lib/my_stuff/cache/memcached_cache.rb, line 19 def get keys, options = {} begin if prefix.nil? || prefix.empty? mc_keys = keys else mc_keys = keys.map{|x| prefix + x} end results = @mc.get(mc_keys) unless keys.empty? keys.map{|k| results[k]} rescue Memcached::Error => e logger.warn e.inspect [nil] * keys.size end end
set(values, options = {})
click to toggle source
# File lib/my_stuff/cache/memcached_cache.rb, line 34 def set values, options = {} options[:ttl] ||= 0 begin values.each do |k,v| prefix = self.prefix || '' @mc.set(prefix + k, v, options[:ttl]) end rescue Memcached::Error => e logger.warn e end end