Join Yalantis and get a $1000 sign-in bonus! React.js, React Native, Python, Java, DevOps, BА. Apply now!
×Закрыть

Spring, Hibernate кеширование best practices

Использую веб приложение: Spring, Hibernate через Jpa
Хочу прикрутить кеш для того что бы кешировать результаты некоторых запростов. У хибернейта есть своя абстракция кеша 2 — nd level cache. У сприга своя (через аннотации @Cache).Никогда не работал с кешем. Посоветуйте как это лучше сделать.
1) прикрутить кеш в хибернейт
2) прикрутить кеш в спринг
3) обращаться в кеш явно без участия фреймворков — тогда как правильно с єтим быть. Я так понял: при сохранении ентити в базу — добавить в кеш, при обновлении — обновить енити в кеше, при удалении — удалить из кеша. И как быть с тразакциями — если допустим ентити добавилась в кеш, но в базу не сохранилась, тогда транзакция отакатывается, но ентити в кеше остается.
Буду рад советам по бест практисес по кешированию и по интеграции их в спринг и хибернейт. Спасибо

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn

Похожие топики

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

а разве данные на обновление зависают в кеше ? я что то помню что база в кеш пишет только результаты последних запросов и после обновления каких то полей она шлет команду кешу удалить все записи с этими полями если они в нем есть.

Вы именете ввиду, что у БД имеется собственный кеш?

У Николай Алименкова был хороший доклад по улучшению performance в Hibernate

Да, я видел и даже лично присутсовал на докладе). Но меня больше интересует сама идея прикручивания кеша к приложению. Поскольку я использую спринг и хибернейт — то думал может использовать их, но понял, что нужно выбрать либо механизм который предоставляет Hibernate(2nd level cache) либо механизм который предоствляет Spring (AOP/proxy магия). Думал может у кого-то есть опыт реального использования на продакшн проектах. В принципе я больше склоняюсь к испольлзованию какой-то библиотеки для кеширования явно и вручную добавлять и обновлять ентити, но опять же может есть какие-то бест практики как єто делать.

@EnableCaching над конфигурацией и @Cacheable над методом, результат вызова которого должен кэшироваться — самый простой вариант

Подписаться на комментарии