我正在运行Java Play框架版本v2.6.1,并使用Ebean进行持久化。我的意图是使用play2-memcached插件来启用bean缓存。
到目前为止,我做了什么?
- 在本地主机上安装了
memcached
并启用了详细日志记录。 - 在
build.sbt
中将ehcache
依赖项替换为cacheApi
(我想这个操作应该完全删除Ehcache)。 - 在
build.sbt
中的libraryDependencies
中添加了"com.github.mumoshu" %% "play2-memcached-play26" % "0.9.0"
。 - 在
build.sbt
中的resolvers
中添加了"Spy Repository" at "http://files.couchbase.com/maven2"
。 - 在应用程序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日志。如果运行
netstat -na | grep 11211
,也没有任何连接到端口11211。
我是否遗漏了什么?
@CacheStrategy
被重命名为@Cache
。https://github.com/ebean-orm/ebean/issues/684 - mindas