Optimizing underlying dat structures to be queues (specifically a Guava Evicting queue for count-based eviction and a LinkedBlockingQueue for time-based eviction).