Другая идея состоит в том, чтобы использовать Lucene и реализацию Directory RAMDirectory для индексирования того, что вы помещаете в свой кэш. Таким образом, вы можете выполнять запросы, используя все функции поисковых систем, которые предоставляет Lucene.
В вашем случае вы, вероятно, будете индексировать соответствующие свойства ваших объектов «как есть» (без использования Analyzer) и выполнять запросы, используя оператор логического равенства.
Lucene очень легкий, производительный, поточно-ориентированный и потребляет мало памяти.