Class: MyStuff::Cache::MemcachedCache

Inherits:
Base
  • Object
show all
Defined in:
lib/my_stuff/cache/memcached_cache.rb

Overview

Memcache-base cached.

If you want to use this, you know what it does.

Instance Attribute Summary

Attributes inherited from Base

#logger

Instance Method Summary collapse

Methods inherited from Base

#get_with_fallback, #get_with_multi_fallback

Constructor Details

#initialize(memcached, options = {}) ⇒ MemcachedCache

Create an instance of this cache.

memcached is a Memcached object, provided by the memcached gem.



14
15
16
17
# File 'lib/my_stuff/cache/memcached_cache.rb', line 14

def initialize memcached, options = {}
  @mc = memcached
  super options
end

Instance Method Details

#get(keys, options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/my_stuff/cache/memcached_cache.rb', line 19

def get keys, options = {}
  begin
    results = @mc.get(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 = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/my_stuff/cache/memcached_cache.rb', line 29

def set values, options = {}
  options[:ttl] ||= 0
  begin
    values.each do |k,v|
      @mc.set(k, v, options[:ttl])
    end
  rescue Memcached::Error => e
    logger.warn e
  end
end