1

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

4

1 回答 1

1

playorm 中的缓存很像休眠中的缓存。实际上有两个缓存在运行,可以称为写缓存和读缓存。

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

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

于 2012-11-09T13:33:23.047 回答