    # File lib/active_support/vendor/memcache-client-1.5.0/memcache.rb, line 609
      def cache_get_multi(server, cache_keys)
        values = {}
        socket = server.socket
        socket.write "get #{cache_keys}\r\n"

        while keyline = socket.gets do
          return values if keyline == "END\r\n"
          raise_on_error_response! keyline

          unless keyline =~ /\AVALUE (.+) (.+) (.+)/ then
            server.close
            raise MemCacheError, "unexpected response #{keyline.inspect}"
          end

          key, data_length = $1, $3
          values[$1] = socket.read data_length.to_i
          socket.read(2) # "\r\n"
        end

        server.close
        raise MemCacheError, "lost connection to #{server.host}:#{server.port}"
      end