Я читал о перехватчиках и АОП, как они могут разгладить ваш код и экстернализировать сквозные проблемы в аспектах. Я сразу же подумал о CDI и использовании пользовательских перехватчиков для доступа к кешу каждый раз, когда вы пытаетесь получить доступ к базе данных. Есть ли библиотека, которая уже реализует это и поддерживает memcache? Я думаю, что призывы к сугун-объекту должны быть перехвачены.CDI-перехватчики и memcache
ответ
ИМХО, если вы хотите пойти именно так, вам нужна довольно веская причина, чтобы оправдать, почему Hibernate Cache/JBoss Cache (просто гадать о вашем стеке технологий, но есть продукты/решения практически для всех стеков) не будет подходит вам?
Вы, конечно же, не хотите изобретать колесо с точки зрения разработки собственного кеша запросов или объектов, не так ли?
В общем, использование memcached для непосредственного избежания запросов БД очень сложно получить правильно и неэффективно. Вы действительно хотите кэшировать концепции более высокого уровня, такие как границы DAO -> DTO.
Я использовал AOP для того, чтобы успешно внедрить недействительность кэша и код управления наблюдателем в java-программах. AOP позволяет мне думать о другом наборе повторного использования разных частей моего кода. Это не значит, что мне не нужно проектировать эти аспекты, но это освобождает меня от ограничений и мешает мне вырезать и вставлять и т. Д.
Так что моя рекомендация заключалась бы в разработке этого шаблона доступа, чтобы вы должны выполнять кучу работы на каждой из этих границ, а затем проектировать перекрестные разрезы, которые вводят эту работу во время компиляции.
Дастин, мне немного сложно понять ваше предложение, не могли бы вы рассказать подробнее? Моя первоначальная идея состояла в том, чтобы перехватить вызовы в entitymanager, эти перехватчики проверили, были ли запрошенные объекты уже в кеше, и если они не будут обращаться к базе данных, иначе объекты будут извлекаться из кеша, что делает использование memcache полностью прозрачным , Разве это не очень хорошая идея? – arg20
Кроме того, стоит ли использовать перехватчики? Весь смысл использования кеша - избегать запросов к базе данных, чтобы вы могли достичь большей производительности, но если декораторы/перехватчики добавляют заметные накладные расходы, это усиление будет потрачено впустую. – arg20
Точка кеша не должна избегать запросов к базе данных. Точка кеша - запоминать дорогостоящую работу. Это часто связано с базой данных, но обычно не напрямую результаты запроса к базе данных. - Насколько ваша методология звучит, она может определенно работать, хотя недействительность будет сложнее. См. Ответ jan groth. :) – Dustin
- 1. memcache и memcache java client
- 2. Служба REST и Memcache
- 3. MySQL Performance и Memcache
- 4. Google ndb и memcache
- 5. Настройки Modx и Memcache
- 6. disable memcache и apc
- 7. Установка Memcache и Memcached
- 8. autccaling memcache и elasticache
- 9. eventmachine memcache и heroku
- 10. memcache и подстановочные знаки
- 11. Синхронизация memcache и MySQL
- 12. Выделенный memcache и общий memcache (python, google appengine)
- 13. Memcache с рельсами и php
- 14. Отказоустойчивость Memcache и последовательное хеширование
- 15. PHP APC и Memcache Benchmarking
- 16. ограничение memcache (MySQL и PHP)
- 17. Memcache - значения, удаленные от Memcache появляясь
- 18. Zend Doctrine2 memcache vs PHP Memcache class
- 19. Python Memcache
- 20. Понимание Memcache
- 21. Хорошее изображение EC2 с memcache и php
- 22. Кабинет Tokyo Cabinet и PHP (через memcache)
- 23. Работа с memcache с Yii и ActiveRecords
- 24. Rails Memcache Store и проблемы expires_in
- 25. memcache и пользовательский DoFn с потоком данных
- 26. ios, сравнивающий данные memcache и ядра
- 27. Redis и Memcache или просто Redis?
- 28. memcache php caching js css и изображения
- 29. Encapsulate PHP Memcache установить и получить функцию
- 30. Ссылаясь на Memcache объектов и обновление их
Вы можете попробовать [Припой] (http://seamframework.org/Seam3/Solder) – Shahzeb