Module: Cache
- Defined in:
- lib/gems/memcache-client-1.5.0/lib/memcache_util.rb
Overview
A utility wrapper around the MemCache client to simplify cache access. All methods silently ignore MemCache errors.
Class Method Summary collapse
-
.add(key, value, expiry = 0) ⇒ Object
Sets
value
in the cache atkey
, with an optionalexpiry
time in seconds. -
.delete(key, delay = nil) ⇒ Object
Deletes
key
from the cache indelay
seconds. -
.get(key, expiry = 0) ⇒ Object
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. -
.put(key, value, expiry = 0) ⇒ Object
Sets
value
in the cache atkey
, with an optionalexpiry
time in seconds. -
.reset ⇒ Object
Resets all connections to MemCache servers.
Class Method Details
.add(key, value, expiry = 0) ⇒ Object
Sets value
in the cache at key
, with an optional expiry
time in seconds. If key
already exists in cache, returns nil.
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/gems/memcache-client-1.5.0/lib/memcache_util.rb', line 54 def self.add(key, value, expiry = 0) start_time = Time.now response = CACHE.add key, value, expiry elapsed = Time.now - start_time ActiveRecord::Base.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 |
.delete(key, delay = nil) ⇒ Object
Deletes key
from the cache in delay
seconds.
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/gems/memcache-client-1.5.0/lib/memcache_util.rb', line 68 def self.delete(key, delay = nil) start_time = Time.now CACHE.delete key, delay elapsed = Time.now - start_time ActiveRecord::Base.logger.debug('MemCache Delete (%0.6f) %s' % [elapsed, key]) nil rescue MemCache::MemCacheError => err ActiveRecord::Base.logger.debug "MemCache Error: #{err.}" nil end |
.get(key, expiry = 0) ⇒ Object
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
.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/gems/memcache-client-1.5.0/lib/memcache_util.rb', line 16 def self.get(key, expiry = 0) start_time = Time.now value = CACHE.get key elapsed = Time.now - start_time ActiveRecord::Base.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 ActiveRecord::Base.logger.debug "MemCache Error: #{err.}" if block_given? then value = yield put key, value, expiry end value end |
.put(key, value, expiry = 0) ⇒ Object
Sets value
in the cache at key
, with an optional expiry
time in seconds.
39 40 41 42 43 44 45 46 47 48 |
# File 'lib/gems/memcache-client-1.5.0/lib/memcache_util.rb', line 39 def self.put(key, value, expiry = 0) start_time = Time.now CACHE.set key, value, expiry elapsed = Time.now - start_time ActiveRecord::Base.logger.debug('MemCache Set (%0.6f) %s' % [elapsed, key]) value rescue MemCache::MemCacheError => err ActiveRecord::Base.logger.debug "MemCache Error: #{err.}" nil end |
.reset ⇒ Object
Resets all connections to MemCache servers.
83 84 85 86 87 |
# File 'lib/gems/memcache-client-1.5.0/lib/memcache_util.rb', line 83 def self.reset CACHE.reset ActiveRecord::Base.logger.debug 'MemCache Connections Reset' nil end |