|
|
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
День добрый. Есть запрос, который тянет данные из справочника. Запрос используется очень часто, сам справочник обновляется редко - условно раз в месяц(обновляется напрямую в базе или как-то не нашим приложением). Хочется его как-то закешировать и каждые часа четыре обновлять из базы. То что справочник в приложении будет какое-то время не актуальный - не важно. Используется Spring/Hibernate. Существуют ли какие-нибудь встроенные/красивые решения? А то руками смотреть сколько времени прошлого обновления как-то не очень красиво. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:16:35 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
в хибернейте можно использовать кеш второго уровня. Посмотрите в документации аннотацию @Cache - там все понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:23:07 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
Можно для определённой сущности настроить Read Only стратегию кеширования. Т.е. хибер прочитает один раз и будет хранить в кэше вечно. Особенно если кэш персистентный. А кэш этот можно скедулером инвалидировать. В EhCache, на сколько я помню, там разные сегменты под каждую сущность. Можно инвалидацию такого сегмента через API этого кэша и реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:23:21 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
ivanraв хибернейте можно использовать кеш второго уровня. Посмотрите в документации аннотацию @Cache - там все понятно Про кеш второго уровня я вроде в общем знаю. С ним не игрался, но как я понимаю, если в базе изменятся значения и изменятся не нашим приложением, то хибернейт и не узнает, что данные изменились. Или я ошибаюсь и этой проблемы там нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:26:28 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
BlazkowiczА кэш этот можно скедулером инвалидировать. А вот и как обходится :) Спасибо за ответы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:27:33 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
ukkuИли я ошибаюсь и этой проблемы там нет? Есть проблема. И не только с кешем второго уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:30:09 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
ukkuBlazkowiczА кэш этот можно скедулером инвалидировать. А вот и как обходится :) Спасибо за ответы) Т.ю. так это же вы и написали: "каждые часа четыре обновлять из базы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:30:48 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
Да, я и написал "это то, что надо", только другими словами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:53:26 |
|
||
|
Кэширование
|
|||
|---|---|---|---|
|
#18+
у нас на проекте юзаем ehcache. Создали страничку под паролем, где всякие утилитарные функции, в том числе и посмотреть\проапдейтить кэш, никаких шедулеров - когда данные поменялись, тогда и скинули старые, работает на клстере без проблем через jms-репликацию веблоджика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 18:03:47 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38426999&tid=2128421]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
210ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 525ms |

| 0 / 0 |
