1. A method for managing a compressed cache, the method comprising: upon receiving a size of data to be stored to the compressed cache, allocating, using a first hardware engine, a first number of virtual memory pages sufficient to store the data; allocating, using the first hardware engine, a first number of physical memory pages to fill the first number of virtual memory pages; compressing the data using a second hardware engine; storing the compressed data into a second number of physical memory pages; and deallocating, using the first hardware engine, one or more physical memory pages of the first number of physical memory pages not used to store the compressed data, wherein each page of the virtual memory pages and physical memory pages corresponds to a respective index stored in the memory cache, and wherein each index is of a common size and comprises a predetermined number of leading bits that collectively indicate a size and a type of the corresponding page, wherein the type represents whether the corresponding page comprises virtual memory or physical memory.