在OrientDB和Neo4j中查询结果cachnig

时间:2015-11-30 14:51:48

标签: caching neo4j orientdb

只是出于好奇,有没有人知道Neo4j和OrientDB是否实现了查询结果的缓存,即将查询与其结果一起存储在缓存中,以便在不实际计算结果的情况下提供相同查询的后续请求查询。

请注意,这与缓存部分数据库不同,因为在这种情况下,查询无论如何都会被执行(可能只使用从内存而不是磁盘中获取的数据)。

2 个答案:

答案 0 :(得分:2)

从版本v2.2开始(不是在SNAPSHOT中,但在几天内将是RC),OrientDB支持缓存命令结果。缓存命令结果已被其他DBMS使用,并证明可以显着改善以下用例:

  • 数据库主要是读取而不是写入
  • 有一些重要的查询会产生一个小的结果集
  • 您有可用的RAM或缓存结果

默认情况下,禁用命令缓存。要启用它,请设置command.timeout = true。

有关详细信息:http://orientdb.com/docs/last/Command-Cache.html

答案 1 :(得分:1)

有几层可以放置缓存。您可以将它放在Varnish(https://www.varnish-cache.org)或其他高级缓存之后的最高级别。您可以使用像Redis(http://redis.io)这样的KV商店并存储过期结果。您还可以使用扩展程序在Neo4j中进行缓存。这两个简单的事情,如索引查找,部分遍历或完整的结果。有关一些想法,请参阅http://maxdemarzi.com/2014/03/23/caching-partial-traversals/http://maxdemarzi.com/2015/02/27/caching-immutable-id-lookups-in-neo4j/