graph - Tinkerpop - 使用 Redis 进行键值属性索引更好还是使用 KeyIndexableGraph

标签 graph redis key-value gremlin

非常简单的问题,但我找不到我想要的信息 - 是否建议使用 Tinkerpop 的 KeyIndexableGraph 或在 Redis 等性能最高且专业的存储上推出您自己的 super 性能键/索引解决方案以获得您需要节点/边缘位置吗?

在我看来,Redis 应该更好,作为一种只专注于键/值查找然后将地址传递到图表中的技术,但我想证明成本的合理性。

tinkerpop 的 promise 是,索引查找应该是使用该属性索引的文章的 log(n),这非常好。 redis 中是否可以做得更好,或者 n*constant 比图查找中的好得多?

编辑:我后来意识到这并不是一个真正明智的问题 - Redis 是一个内存存储,因此受到内存的限制。查找图形节点位置仍然需要再次查找图形中的节点。

最佳答案

重要的是要记住,除了 TinkerGraph(内存中的图)之外,TinkerPop 本身并不是一个图数据库。 KeyIndexableGraph 是一个由底层图形数据库(Titan、Neo4j、OrientDB 等)利用该图形的索引功能实现的接口(interface)。因此,您应该根据底层图数据库本身的功能来选择索引。

一般来说,为实现 KeyIndexableGraph 的图建立索引而实现 Redis 似乎是一个不必要的层。我猜它会让你的编程变得复杂,但没有太多好处。

关于graph - Tinkerpop - 使用 Redis 进行键值属性索引更好还是使用 KeyIndexableGraph,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14698166/

相关文章:

caching - Redis缓存设计

dictionary - 如果满足条件,则从字典中删除项目

jquery - 如何将javascript键值对发送到服务器?

python - 在python中读取图中的相邻元素

python - Networkx 用两条边而不是一条来显示循环

java - DefaultCookieSerializer.setJvmRoute 不工作

java - 如何删除映射中重复的键值对

python边缘列表到邻接矩阵

java - 如何以确定性顺序遍历 Guava 图?

ruby-on-rails - 数据保存两次 - Resque