# File lib/memcache/server.rb, line 78
    def get(keys, cas = nil)
      return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array)
      return {} if keys.empty?

      method = cas ? 'gets' : 'get'

      results = {}
      keys = keys.collect {|key| cache_key(key)}

      read_command("#{method} #{keys.join(' ')}") do |response|
        if cas
          key, flags, length, cas = match_response!(response, /^VALUE ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+)/)
        else
          key, flags, length = match_response!(response, /^VALUE ([^\s]+) ([^\s]+) ([^\s]+)/)
        end

        value = socket.read(length.to_i)
        match_response!(socket.read(2), "\r\n")

        value.memcache_flags = flags.to_i
        value.memcache_cas   = cas

        key = input_key(key)
        results[key] = value
      end
      results
    end