Я запускаю Java Play framework версии v2.6.1 и используя Ebean для сохранения. Я намерен получить bean кэширование, используя play2-memcached.
Что я сделал до сих пор?
- установлен
memcached
на локальном хосте и включен ведомый журнал. - заменила
ehcache
зависимость сcacheApi
вlibraryDependencies
вbuild.sbt
(это, я полагаю, должно полностью удалить Ehcache). - добавлен
"com.github.mumoshu" %% "play2-memcached-play26" % "0.9.0",
вlibraryDependencies
вbuild.sbt
- добавлен
"Spy Repository" at "http://files.couchbase.com/maven2",
вresolvers
вbuild.sbt
- добавлены следующие записи в приложение conf:
play.modules.disabled += "play.api.cache.ehcache.EhCacheModule"
play.modules.enabled+="com.github.mumoshu.play2.memcached.MemcachedModule"
play.cache.defaultCache=default
play.cache.bindCaches=["db-cache", "user-cache", "session-cache"]
memcached.host="127.0.0.1:11211"
- взял мою сущность и сделал ее реализацию
Serializable
, также добавил аннотацию@com.avaje.ebean.annotation.Cache
. - включено ведение журнала SQL
Что работает?
- Загрузка объекта с помощью
Entity.find.byId(id)
результатов SQLSELECT
. Загрузка его снова с разными результатами запроса не содержит операторов SQL. - открытие браузера на localhost: 11211 показывает ошибки в syslog - это значит, что memcached запущен, и я вижу, как появляются запросы
- создание дампа памяти. Я вижу, что загружаются классы, связанные с кешем из
com.github.mumoshu
.
Что не работает?
- Я ожидаю, что кешированные объекты будут отправлены в memcached (при чтении и/или обновлении). Этого не происходит - нет связанных с этим журналов memcached. Никаких подключений к порту 11211, если я запустил
netstat -na | grep 11211
.
Есть ли что-нибудь, чего я не вижу?