    # File lib/active_support/vendor/memcache-client-1.6.5/memcache.rb, line 552
      def cache_get_multi(server, cache_keys)
        with_socket_management(server) do |socket|
          values = {}
          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}" # TODO: retry here too
        end
      end