Кэширование результатов - PullRequest
4 голосов
/ 18 января 2010

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

Использовать в памяти базу данных? 3-я часть кэшированного набора результатов?

не нашел, вероятно, потому что я новичок в этой теме.

Ответы [ 3 ]

2 голосов
/ 18 января 2010

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

Я рекомендую использовать EhCache для кэширования ваших результатов.Это механизм кэширования в памяти (с опциями для переполнения на диск и опциями для распределения по кластеру).Он очень хорошо интегрируется с Spring (через EhCacheManagerFactoryBean и EhCacheFactoryBean).

0 голосов
/ 20 сентября 2012

Использовать CachedRowSet . Его можно рассматривать как ResultSet , но ему не нужно поддерживать соединение с базой данных.

0 голосов
/ 18 января 2010

Если список стран обновляется почти никогда, при запуске приложения заполните FastMap , ключами карты которых будут двухбуквенные сокращения страны , а значениями - другая информация, которую вы хотите сохранить для каждой страны. В противном случае используйте кэш-память БД в памяти, такую ​​как EhCache и Memcached.

...