1. An eviction system for dynamically-sized caching, comprising: a non-blocking data structure for maintaining one or more data nodes, wherein each data node corresponds to a data item in a cache, and wherein each data node comprises information relating to a corresponding data item; and an eviction module configured for: removing a data node from the data structure; determining whether the data node is a candidate for eviction based on information included in the data node; and if the data node is not a candidate for eviction, inserting the data node back into the data structure, otherwise evicting the data node and a corresponding data item from the system and the cache, respectively; wherein data nodes of the data structure circulate through the eviction module until a candidate for eviction is determined.