Class: Gemstash::RedisClient

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/gemstash/cache.rb

Overview

Wrapper around the redis-rb gem to behave like a dalli Memcached client.

Instance Method Summary collapse

Constructor Details

#initialize(redis_servers) ⇒ RedisClient

Returns a new instance of RedisClient.



89
90
91
92
# File 'lib/gemstash/cache.rb', line 89

def initialize(redis_servers)
  require "redis"
  @cache = ::Redis.new(:url => redis_servers)
end

Instance Method Details

#alive!Object



94
95
96
# File 'lib/gemstash/cache.rb', line 94

def alive!
  @cache.ping == "PONG"
end

#flushObject



115
116
117
# File 'lib/gemstash/cache.rb', line 115

def flush
  @cache.flushdb
end

#get(key) ⇒ Object



98
99
100
101
# File 'lib/gemstash/cache.rb', line 98

def get(key)
  val = @cache.get(key)
  YAML.load(val, permitted_classes: [Gemstash::Authorization, Set]) unless val.nil?
end

#get_multi(keys) ⇒ Object



103
104
105
106
107
108
109
# File 'lib/gemstash/cache.rb', line 103

def get_multi(keys)
  @cache.mget(*keys).each do |k, v|
    next if v.nil?

    yield(k, YAML.load(v))
  end
end

#set(key, value, expiry) ⇒ Object



111
112
113
# File 'lib/gemstash/cache.rb', line 111

def set(key, value, expiry)
  @cache.set(key, YAML.dump(value), :ex => expiry)
end