class RedisCacheUtil

Public Class Methods

delete(type, key) click to toggle source
Calls superclass method CacheUtil::delete
# File lib/cache_driver/redis_cache_util.rb, line 55
def delete(type, key)
  super type, key

  res = redis.del("#{namespace}:#{type_to_dir(type)}##{key}")
  res == 1
end
read(type, key) click to toggle source
Calls superclass method CacheUtil::read
# File lib/cache_driver/redis_cache_util.rb, line 11
def read(type, key)
  super type, key

  content = redis.get("#{namespace}:#{type_to_dir(type)}##{key}")
  unless content
    puts "cache #{type} ##{key} data miss"
    return nil
  end

  data_str = content.split(" --> ")[1]
  unless data_str
    puts "cache #{type} ##{key} data miss"
    return nil
  end

  data = JSON.parse data_str
  type_to_class(type).from_cache data
end
read_all(type) click to toggle source
Calls superclass method CacheUtil::read_all
# File lib/cache_driver/redis_cache_util.rb, line 30
def read_all(type)
  super type

  r = redis
  data = []
  r.keys("#{namespace}:#{type_to_dir(type)}#*").each do |key|
    content = r.get(key)
    unless content
      puts "cache #{key} data miss"
      next
    end

    data_str = content.split(" --> ")[1]
    unless data_str
      puts "cache #{key} data miss"
      next
    end

    d = JSON.parse data_str
    data << type_to_class(type).from_cache(d)
  end

  data
end
write(type, key, data) click to toggle source
Calls superclass method CacheUtil::write
# File lib/cache_driver/redis_cache_util.rb, line 4
def write(type, key, data)
  super type, key, data

  res = redis.set "#{namespace}:#{type_to_dir(type)}##{key}", "#{Time.now} --> #{data.to_cache.to_json}"
  res == "OK" ? key : nil
end

Private Class Methods

namespace() click to toggle source
# File lib/cache_driver/redis_cache_util.rb, line 67
def namespace
  CacheDriver.config.redis_namespace
end
redis() click to toggle source
# File lib/cache_driver/redis_cache_util.rb, line 63
def redis
  Redis.new :host => CacheDriver.config.redis_host, :port => CacheDriver.config.redis_port
end