在PlayOrm中缓存

时间:2012-11-09 07:08:17

标签: playorm

我想更多地了解缓存如何在playorm中运行。任何指针都会很棒。 也: 1.如果有任何性能数据可用于验证Playorm中的缓存。 2.是否需要任何配置/设置?

1 个答案:

答案 0 :(得分:1)

在playorm中缓存很像hibernate中的缓存。实际上有两个缓存可以称为写缓存和读缓存。

写缓存就像你执行put(Object实体),put(Object实体)等等一样,它将这些put缓存在一个名为NoSqlWriteCacheImpl的类中。当您调用flush时,此缓存将被清空并清除。没有刷新它就无法清除此缓存。调用clear不会清除此缓存,只调用flush这样做,如果你不想写东西就不要做put。此缓存为PER NoSqlEntityManager。

然后,读缓存位于名为NoSqlReadCacheImpl的类中。这个缓存就像hibernate的一级缓存一样,就像hibernate一样是PER NoSqlEntityManager。当您阅读内容时,它会通过此层并进行缓存,当您再次读取该内容时,它将从缓存中读取而不是转到nosql数据库。一个很好的例子是你得到一个T恤,然后得到它的用户(比如bob),然后你得到一些其他的对象并得到它的用户恰好是Bob ....这导致缓存命中并且发生频率高于一个期待他们查询东西。注意:运行任何NoSqlQuery时完全避免使用NoSqlReadCache!它仅用于find(Class c,List键)和find(Class c,Object key)方法。