陷入大麻烦,
那么谁能告诉我,我怎样才能通过密码获得写锁。注意:我将使用 REST API,所以我的密码会在 php.ini 中。
编辑:场景:
我正在使用 Neo4j REST 服务器和 PHP 来访问它。
现在我创建了一个节点说'counter-node',它生成新的用户ID。逻辑只是将前一个值加 1。
现在,如果两个用户同时出现,那么第一个用户在将其更新为 1 之前读取了“counter-node”值,第二个用户读取了它。因此,“反节点”中的值与预期不同。
任何帮助
您不需要显式获取写锁。您在事务中修改的所有节点都会自动进行写锁定。
因此,如果您在逻辑中执行此操作:
start tx
increment counter node
read the value of the counter node and set it on the user node as ID
commit tx
没有两个用户会得到相同的 ID。
Neo4j流行的APOC插件有一系列可以通过 Cypher 调用的显式锁定程序,例如call apoc.lock.nodes([nodes])
在neo4j-contrib.github.io/neo4j-apoc-procedures/#_locking了解更多信息
注意:据我所知,这个功能在 Cypher 中并不存在,所以 APOC 可能是你最好的选择。