Как проверить, когда кеш пуст и я должен его загрузить - PullRequest
0 голосов
/ 18 декабря 2018

Я использую такие технологии, как spring boot, jpa и java 8. У меня есть вопрос, как я могу проверить, пуст ли кеш, и мне нужно отправить запрос в базу данных, чтобы перезагрузить его (как проверить, что мне нужно перезагрузитькеш)?

1 Ответ

0 голосов
/ 18 декабря 2018

Поскольку в вашем вопросе неясно, какой тип кэша вы используете?JPA использует первый уровень кэширования - это контекст постоянства.Entity Manager гарантирует, что в пределах одного Постоянного контекста для любой конкретной строки базы данных будет только один экземпляр объекта.Однако этим же объектом можно управлять в транзакции другого пользователя, поэтому вам следует использовать либо оптимистическую, либо пессимистическую блокировку.

Если вы имеете в виду кэш 2-го уровня, этот уровень кэш-памяти возник из-за соображений производительности.между Entity Manager и базой данных.Контекст постоянства разделяет кэш, делая кэш второго уровня доступным во всем приложении.Трафик базы данных значительно сокращается, поскольку объекты загружаются в общий кэш и становятся доступными оттуда.Так что на самом деле вам не нужно беспокоиться о перезагрузке данных из базы данных, если произойдет пропадание кеша.

Теперь, если вы реализуете свою собственную логику для реализации кеша, вам нужно больше исследовать, как на самом деле работает кеширование.и различные алгоритмы кеширования, такие как LRU, MRU и т. д. (которые я лично не рекомендовал бы, поскольку вы можете использовать существующие доступные провайдеры, такие как ehcache, redis, hazelcast, всего несколько имен для кеширования 2-го уровня)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...