1. A caching method, comprising: caching first data received from a data source within a static cache as stable data, the static cache having a fixed size; evicting portions of the stable data within the static cache to a dynamic cache when the static cache is full; and enrolling the evicted portions of the stable data into the dynamic cache as soft data, the dynamic cache having a dynamic size.