If the returned map doesn't contain all requested keys then the entries it does
contain will be cached, but getAll will throw an exception. If the returned map
contains extra keys not present in keys then all returned entries will be cached,
but only the entries for keys will be returned from getAll.