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)
end
server.close
raise MemCacheError, "lost connection to #{server.host}:#{server.port}"
end
end