bobzer всё правильно сказал, но хотел бы добавить, что все типичные "энтерпрайз" приложения на джаве с ORM имеют одинаковые проблемы - огромное количество select в базу с массовыми проблемами "select n+1". Тюнить ORM очень сложно и результат все равно получается чрезвычайно хрупким: одно неловкое движение в коде и опять сыпятся selectы тысячами. В таких условиях кеш 2го уровня - это единственное с чем такие типовые приложения вообще в состоянии сносно работать. Про сам алгоритм найди информацию в интернете - ее море. Из минусов - огромное потребление памяти и проблемы инвалидации кеша с появлением кластера с несколькими нодами. Вот здесь уже Redis действительно выглядит спасением. Насчет того, что любая база хорошо кеширует - это тоже правда, но запрос ORM в базу - это само по себе дикий стек-трейс в Java + сетевое взаимодействие драйвера JDBC - всё это работает медленно.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.