A key/value collection is not a Cache Use a cache abstraction layer Beware of the caching overhead If your database queries are slow, the cache should be your last resort What about data consistency? http://java.dzone.com/articles/caching-best-practices