如何防止redisgraph中的数据重复?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止redisgraph中的数据重复?相关的知识,希望对你有一定的参考价值。
我写了一个代码来存储redisgraph中的图形,最初它存储的是单个图形,但如果我第二次执行相同的代码,那么它就会在数据库中存储相同的图形,而不会替换之前的图形。最初它存储的是单个图形,但如果我第二次执行相同的代码,那么它就会在数据库中存储相同的图形,而不会替换之前的图形。所以,现在我在数据库中的一个键中得到了两个相同的图形,我不想有任何重复的图形或任何重复的节点,这意味着如果我再次执行相同的代码,它应该替换之前的图形。
答案
如果你的代码由一系列CREATE命令组成(无论是通过Cypher还是RedisGraph客户端之一),运行两次就会重复你所有的数据。这并不是说键存储了两个图,而是说,它是一个图,每个实体都会重复。
如果你想替换一个现有的图形,你应该先删除现有的图形。你可以使用Redis命令删除一个图。
DEL [graph key]
或RedisGraph命令。
GRAPH.DELETE [graph key]
两者在功能上是相同的。
相反,如果你想更新一个现有的图而不引入重复的图,你应该使用MERGE子句,如下所述 在RedisGraph文档中.
另一答案
你可以使用MERGE子句来防止插入重复的数据。
以下是删除现有数据中重复记录的查询方法。
MATCH (p:LabelName)
WITH p.id as id, collect(p) AS nodes
WHERE size(nodes) > 1
UNWIND nodes[1..] AS node
DELETE node
以上是关于如何防止redisgraph中的数据重复?的主要内容,如果未能解决你的问题,请参考以下文章
RedisGraph-benchmark: 使用LDBC SNBredisgraph-bulk-loader和hiredis测试RedisGraph性能