1. A method for intelligently allocating cache requests among caches in a distributed cache system, the method comprising: allocating, at a computing device, a cache request to a first cache of the distributed cache system in response to detection of a problem at one of the other caches in the distributed cache system, or based on a data type associated with a cache object associated with the cache request; monitoring the caches in the distributed cache system; when a slowdown in service is detected at a first cache, switching the first cache to a safe cache mode of operation; periodically performing a test to determine whether the first cache has resumed normal operations; when the first cache has resumed normal operations, switching the first cache to a normal cache mode of operations.