优化Redis-Graph查询性能(匹配)

Tom*_* P. 3 performance graph redis redisgraph

我想在Redis中保存一个大图,并试图使用RedisGraph完成此操作。为了测试这一点,我首先创建了一个测试图以检查性能特征。该图对于我们需要的目的来说很小。

  • 顶点:约350万
  • 优势:约1800万

出于我们的目的,这是非常有限的,我们需要能够在单个数据库中将其增加到数以百万计的边缘。无论如何,我在检查空间和性能要求后,仅在顶点上加载后,buit停止了,并且看到以下各项的性能:

GRAPH.QUERY gid 'MATCH (t:token {token: "some-string"}) RETURN t' 
Run Code Online (Sandbox Code Playgroud)

仅此检索就超过300毫秒,这是绝对不能接受的。

我是否缺少提高检索性能的明显方法,还是目前RedisGraph的局限性?

谢谢

Ali*_*man 5

添加一个索引将加快速度大量匹配的时候。

CREATE INDEX ON :token(token)
Run Code Online (Sandbox Code Playgroud)

从我的调查中,我认为要创建索引必须至少存在一个项目实例,但是我没有做任何数字来增加早期创建索引然后添加大多数新节点的额外开销,而不是所有项目都在树中之后,就可以对其进行索引。


SWi*_*y22 5

如果所有节点都被标记为“token”,那么 redisgraph 将必须扫描 350 万个实体,将每个实体的“token”属性与您提供的值(“some-string”)进行比较

为了加快速度,我建议添加索引,或使用 LIMIT 限制您希望收到的结果数量。

另外值得一提的是,由于内部内存管理的原因,第一个查询的处理时间可能会比后续查询花费的时间更长。