使用memcached

时间:2017-08-22 17:00:44

标签: java playframework memcached ebean playframework-2.6

我正在运行Java Play framework版本v2.6.1并使用Ebean来保持持久性。我的目的是让bean caching继续使用play2-memcached插件。

到目前为止我做了什么?

  • 在localhost上安装了memcached并启用了详细日志记录。
  • ehcache依赖项替换为cacheApi libraryDependenciesbuild.sbt的{​​{1}}依赖项(我认为,应完全删除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)加载实体会导致SQL SELECT。使用不同的请求结果再次加载它没有SQL语句。
  • 打开浏览器到localhost:11211显示syslog中的错误 - 这是为了确保memcached正在运行,我可以看到请求出现
  • 进行内存转储我可以看到加载了来自com.github.mumoshu的缓存相关类。

什么不起作用?

  • 我希望将缓存的对象发送到memcached(在读取和/或更新时)。这没有发生 - 没有与此相关的memcached日志。如果我运行netstat -na | grep 11211
  • ,则没有任何与端口11211的连接

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:0)

您还需要绑定future。 添加

javax.caching.CacheManager

libraryDependencies += jcache

如果您使用的是Guice,则还必须为Java注释添加以下内容:

build.sbt

更多信息可以在" JCache支持" Playframework文档的一部分here