2015-08-23 2 views
0

Я настроен на повышение производительности для моего webapp, и, конечно же, решение должно быть кэшировано.«положительный» кеш при получении запроса пользователя - ehcache

На данный момент у системы есть данные rss для подачи, которые должны быть немного свежими, проблема в том, что это так тяжело загружается mysql. На самом деле, я набрал 1 минуту с ehcache. Это означает, что через 1 минуту данные будут истекли, когда придет неудачный пользователь, их опыт будет медленным, чем обычно.

Конфигурация Ehcache как это:

<cache name="news.list" maxEntriesLocalHeap="1000" eternal="false" timeToLiveSeconds="60" statistics="true" 
     memoryStoreEvictionPolicy="FIFO"> 
</cache> 

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

Есть ли у ehcache какие-либо техники для поддержки этого?

Любые идеи приветствуются, Спасибо.

ответ

2

Что вам нужно, так это так называемый кеш refresh-ahead. Таким образом, вы можете поручить своему кешу последовательно искать истекшие записи и обновлять их в фоновом режиме. Поэтому к тому времени, когда ваши пользователи придут, они, скорее всего, найдут для них свежую (мгновенно-полезную) информацию, предварительно загруженную для них.

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

+0

Спасибо, очень подробно и полезно. –

Смежные вопросы