Module: Cache
- Defined in:
- lib/memcache_util.rb
Overview
A utility wrapper around the MemCache client to simplify cache access. All methods silently ignore MemCache errors.
This API is deprecated, please use the Rails.cache API or your own wrapper API around MemCache.
Class Method Summary (collapse)
-
+ (Object) add(key, value, expiry = 0)
Sets value in the cache at key, with an optional expiry time in seconds.
-
+ (Object) delete(key, delay = nil)
Deletes key from the cache in delay seconds.
-
+ (Object) get(key, expiry = 0)
Returns the object at key from the cache if successful, or nil if either the object is not in the cache or if there was an error attermpting to access the cache.
-
+ (Object) logger
Try to return a logger object that does not rely on ActiveRecord for logging.
-
+ (Object) put(key, value, expiry = 0)
Sets value in the cache at key, with an optional expiry time in seconds.
-
+ (Object) reset
Resets all connections to MemCache servers.
Class Method Details
+ (Object) add(key, value, expiry = 0)
Sets value in the cache at key, with an optional expiry time in seconds. If key already exists in cache, returns nil.
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/memcache_util.rb', line 69 def self.add(key, value, expiry = 0) start_time = Time.now response = CACHE.add key, value, expiry elapsed = Time.now - start_time logger.debug('MemCache Add (%0.6f) %s' % [elapsed, key]) (response == "STORED\r\n") ? value : nil rescue MemCache::MemCacheError => err ActiveRecord::Base.logger.debug "MemCache Error: #{err.}" nil end |
+ (Object) delete(key, delay = nil)
Deletes key from the cache in delay seconds.
83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/memcache_util.rb', line 83 def self.delete(key, delay = nil) start_time = Time.now CACHE.delete key, delay elapsed = Time.now - start_time logger.debug('MemCache Delete (%0.6f) %s' % [elapsed, key]) nil rescue MemCache::MemCacheError => err logger.debug "MemCache Error: #{err.}" nil end |
+ (Object) get(key, expiry = 0)
Returns the object at key from the cache if successful, or nil if either the object is not in the cache or if there was an error attermpting to access the cache.
If there is a cache miss and a block is given the result of the block will be stored in the cache with optional expiry, using the add method rather than set.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/memcache_util.rb', line 31 def self.get(key, expiry = 0) start_time = Time.now value = CACHE.get key elapsed = Time.now - start_time logger.debug('MemCache Get (%0.6f) %s' % [elapsed, key]) if value.nil? and block_given? then value = yield add key, value, expiry end value rescue MemCache::MemCacheError => err logger.debug "MemCache Error: #{err.}" if block_given? then value = yield put key, value, expiry end value end |
+ (Object) logger
Try to return a logger object that does not rely on ActiveRecord for logging.
13 14 15 16 17 18 19 20 21 |
# File 'lib/memcache_util.rb', line 13 def self.logger @logger ||= if defined? Rails.logger # Rails 2.1 + Rails.logger elsif defined? RAILS_DEFAULT_LOGGER # Rails 1.2.2 + RAILS_DEFAULT_LOGGER else ActiveRecord::Base.logger # ... very old Rails. end end |
+ (Object) put(key, value, expiry = 0)
Sets value in the cache at key, with an optional expiry time in seconds.
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/memcache_util.rb', line 54 def self.put(key, value, expiry = 0) start_time = Time.now CACHE.set key, value, expiry elapsed = Time.now - start_time logger.debug('MemCache Set (%0.6f) %s' % [elapsed, key]) value rescue MemCache::MemCacheError => err ActiveRecord::Base.logger.debug "MemCache Error: #{err.}" nil end |
+ (Object) reset
Resets all connections to MemCache servers.
98 99 100 101 102 |
# File 'lib/memcache_util.rb', line 98 def self.reset CACHE.reset logger.debug 'MemCache Connections Reset' nil end |