class Redis::Connection::Hiredis

def self.connect(config)

def self.connect(config)
  connection = ::Hiredis::Connection.new
  connect_timeout = (config.fetch(:connect_timeout, 0) * 1_000_000).to_i
  if config[:scheme] == "unix"
    connection.connect_unix(config[:path], connect_timeout)
  elsif config[:scheme] == "rediss" || config[:ssl]
    raise NotImplementedError, "SSL not supported by hiredis driver"
  else
    connection.connect(config[:host], config[:port], connect_timeout)
  end
  instance = new(connection)
  instance.timeout = config[:read_timeout]
  instance
rescue Errno::ETIMEDOUT
  raise TimeoutError
end