memcache_util.rb

来自「用ruby on rails写的一个博客程序,还不错..ruby on rail」· RB 代码 · 共 72 行

RB
72
字号
### A utility wrapper around the MemCache client to simplify cache access.  All# methods silently ignore MemCache errors.module Cache    ##    # 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+.    def self.get(key, expiry = 0)        start_time = Time.now        result = CACHE.get key        end_time = Time.now        ActiveRecord::Base.logger.debug('MemCache Get (%0.6f)  %s' %                                          [end_time - start_time, key])        return result    rescue MemCache::MemCacheError => err        ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"        if block_given? then            value = yield            put key, value, expiry            return value        else            return nil        end    end    ##    # Places +value+ in the cache at +key+, with an optional +expiry+ time in    # seconds.    def self.put(key, value, expiry = 0)        start_time = Time.now        CACHE.set key, value, expiry        end_time = Time.now        ActiveRecord::Base.logger.debug('MemCache Set (%0.6f)  %s' %                                          [end_time - start_time, key])    rescue MemCache::MemCacheError => err        ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"    end    ##    # Deletes +key+ from the cache in +delay+ seconds. (?)    def self.delete(key, delay = nil)        start_time = Time.now        CACHE.delete key, delay        end_time = Time.now        ActiveRecord::Base.logger.debug('MemCache Delete (%0.6f)  %s' %                                          [end_time - start_time, key])    rescue MemCache::MemCacheError => err        ActiveRecord::Base.logger.debug "MemCache Error: #{err.message}"    end    ##    # Resets all connections to mecache servers.    def self.reset        CACHE.reset        ActiveRecord::Base.logger.debug 'MemCache Connections Reset'    end    end# vim: ts=4 sts=4 sw=4

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?