1. A distributed cache system comprising: a data storage portion having memory hosts, each memory host comprising: non-transitory memory; and a network interface controller in communication with the non-transitory memory for servicing remote direct memory access requests; a data control portion having a curator separate and remote from the memory hosts and in communication with the memory hosts, the curator managing striping of data across the memory hosts by: dividing a file into data stripes and replicating each data stripe; and allocating storage of the data stripes and data stripe replications on the memory hosts; and a cache logic portion in communication with the data storage and data control portions, the cache logic portion executing at least one memory access request to implement a cache operation, the cache logic portion comprising a cache service having a cache data layer storing cache data in files and a cache indexing layer indexing the cache data stored in the files, the cache service sharding the cache data into the files, each file storing cache entries, each cache entry comprising cache entry data, a cache tag, and a cache fingerprint, at least one of the files comprising a circular data file having a fixed size, a first-in-first-out queue having a front and a back, and a tail pointer providing an offset to the front of the queue; wherein in response to the at least one memory access request to access the file, the curator providing the cache logic portion a file descriptor mapping location information of the data stripes and the data stripe replications of the file on the memory hosts for remote direct memory access of the file on the memory hosts and a key to allow access to the file on the memory hosts through the corresponding network interface controllers.