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