    # 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