Я использую Sesame в веб-приложении JSP, и я хотел бы знать, есть ли способ кэшировать некоторые запросы, которые используются последовательно.Кэширование кунжута общих запросов
ответ
Я предполагаю, что вы хотите «кэшировать» запрос результат для заданного запроса с определенным значением. Вы можете очень легко создать такой кеш самостоятельно. Просто создать класс для общего запроса, который внутренне сохраняет ссылку на HashMap, что отображающее значение ключа (например, placeid для примера запроса) в результате запроса:
HashMap<URI, TupleQueryResult> cache = new HashMap<>();
Тогда все вы делаете чек, для данного места id, если он присутствует в кеше. Если это не так, вы выполняете запрос, получить результат обратно и материализовать его в качестве MutableTupleQueryResult
, который вы можете положить в этом кэше:
if (!cache.contains(placeId)) {
// reuse the prepared query with the specific binding for which we want a result
preparedQuery.setBinding("placeid", placeId);
// execute the query and add the result to a result object we can reuse multiple times
TupleQueryResult result = new MutableTupleQueryResult(preparedQuery.evaluate());
// put the result in the cache.
cache.put(placeId, result);
}
return cache.get(placeId);
Если вы хотите что-то немного более сложное (например, то, что выбрасывает кешированные элементы через определенное время или задает ограничение на размер вашего кеша), я бы посмотрел на использование чего-то вроде Guava Cache вместо простого HashMap
, но базовая настройка осталась бы такой же.
- 1. Кэширование общих данных в словаре
- 2. Entity Framework кэширование запросов
- 3. Кэширование запросов MySQL
- 4. Кэширование запросов в Django
- 5. Кэширование запросов MySQL (2)
- 6. Кэширование Htttp запросов responce
- 7. лаковое кэширование запросов POST
- 8. Кэширование всех запросов
- 9. Кэширование запросов и переоценка
- 10. Кэширование запросов в node.js
- 11. Кэширование решений и запросов
- 12. Кэширование запросов AJAX
- 13. Кэширование запросов в Jooq
- 14. Показать разработчик общих запросов
- 15. Кэширование запросов sql-запросов на сервере приложений
- 16. Grails 1.3.1: Улучшение Кэширование запросов
- 17. Кэширование DNS-запросов в Ruby
- 18. Как отключить кэширование запросов MySQL
- 19. Кэширование нескольких запросов с memcached
- 20. Заголовки HTTP-запросов и кэширование
- 21. Кэширование данных против нескольких запросов
- 22. Кэширование запросов с помощью HttpModule
- 23. Кэширование для часто меняющихся запросов
- 24. ServiceStack Redis - кэширование дорогостоящих запросов
- 25. Rails кэширование запросов низкого уровня
- 26. Кэширование запросов БД в django
- 27. Кэширование запросов Rails не работает
- 28. Кэширование запросов Adobe CQ JCR
- 29. Единичное тестирование фабрики общих запросов
- 30. Неясная семантика кунжута 2.7 begin()
Можете ли вы дать более подробную информацию о том, чего именно вы пытаетесь достичь? Какова ваша точная настройка и что именно вам нужно кэшировать? –
У меня есть некоторые sparql-запросы, такие как «select? Att? Value where {placeid? Att? Value}». Я делаю этот запрос на 30 мест, и я хочу «кешировать» их, если они были использованы –