module Redisable::Connection

Public Class Methods

conn(server) click to toggle source
# File lib/redisable/connection.rb, line 5
def self.conn(server)
  @pool ||= {}
  @pool[server] ||=
    begin
      conf = Redisable::Config.conf(server)
      redis = nil
      if conf.is_a?(Array)
        redis = ::Redis::Distributed.new(conf)
        redis.nodes.each do |node|
          raise "Redis server[#{node.id}] is down!" unless reachable?(node)
        end
      else
        redis = ::Redis.new(conf)
        raise "Redis server[#{redis.id}] is down!" unless reachable?(redis)
      end
      redis
    end
end
quit(server) click to toggle source
# File lib/redisable/connection.rb, line 24
def self.quit(server)
  redis = @pool[server]
  redis.quit if redis && reachable?(redis)
  @pool[server] = nil
end
reset(server) click to toggle source
# File lib/redisable/connection.rb, line 30
def self.reset(server)
  quit(server)
  conn(server)
end

Private Class Methods

reachable?(redis) click to toggle source
# File lib/redisable/connection.rb, line 36
def self.reachable?(redis)
  redis.ping == "PONG"
end