| Class | ActiveSupport::Cache::MemCacheStore |
| In: |
vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb
|
| Parent: | Store |
A cache store implementation which stores data in Memcached: www.danga.com/memcached/
This is currently the most popular cache store for production websites.
Special features:
| addresses | [R] |
Creates a new MemCacheStore object, with the given memcached server addresses. Each address is either a host name, or a host-with-port string in the form of "host_name:port". For example:
ActiveSupport::Cache::MemCacheStore.new("localhost", "server-downstairs.localnetwork:8229")
If no addresses are specified, then MemCacheStore will connect to localhost port 11211 (the default memcached port).
# File vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb, line 35
35: def initialize(*addresses)
36: addresses = addresses.flatten
37: options = addresses.extract_options!
38: addresses = ["localhost"] if addresses.empty?
39: @addresses = addresses
40: @data = MemCache.new(addresses, options)
41: end
# File vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb, line 109
109: def clear
110: @data.flush_all
111: end
# File vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb, line 113
113: def stats
114: @data.stats
115: end
Writes a value to the cache.
Possible options:
# File vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb, line 58
58: def write(key, value, options = nil)
59: super
60: method = options && options[:unless_exist] ? :add : :set
61: # memcache-client will break the connection if you send it an integer
62: # in raw mode, so we convert it to a string to be sure it continues working.
63: value = value.to_s if raw?(options)
64: response = @data.send(method, key, value, expires_in(options), raw?(options))
65: response == Response::STORED
66: rescue MemCache::MemCacheError => e
67: logger.error("MemCacheError (#{e}): #{e.message}")
68: false
69: end