redis - 观察 Redis 图表中的更新

标签 redis cypher property-graph

我最近发现redis有一个property graph model实现称为 redis graph这太棒了。

对于我的用例,我真正怀念的一件事是“观察”数据的能力。在典型的 Redis 数据结构中,我可以启用 Keyspace notificationsclient tracking并收到有关我感兴趣的数据突变的通知,从服务器提取数据或将我的本地缓存标记为“脏”。

我不知道这对于属性图来说是如何工作的,因为关系要复杂得多(也是这方面的关键功能),但是有没有办法观察或同步存储在 Redis 图中的数据?

最佳答案

可以为这样的模块启用键空间通知:

redis.cloud> CONFIG SET notify-keyspace-events AKE

“A”部分包括模块 - 如果该模块发布了任何内容。不幸的是,我用 RedisGraph 尝试过,但没有成功。

您可以在下面重现我的测试。在一个终端中,我启动了 redis-cli 并执行了以下操作:

127.0.0.1:6379> PSUBSCRIBE *
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "*"
3) (integer) 1

在另一个例子中我这样做了:

127.0.0.1:6379> GRAPH.QUERY test 'CREATE (n:foo { alfa: 12, bravo: "test" })'
1) 1) "Labels added: 1"
   2) "Nodes created: 1"
   3) "Properties set: 2"
   4) "Cached execution: 0"
   5) "Query internal execution time: 0.204701 milliseconds"
127.0.0.1:6379> GRAPH.QUERY test 'MATCH (n) RETURN n'
1) 1) "n"
2) 1) 1) 1) 1) "id"
            2) (integer) 0
         2) 1) "labels"
            2) 1) "foo"
         3) 1) "properties"
            2) 1) 1) "alfa"
                  2) (integer) 12
               2) 1) "bravo"
                  2) "test"
3) 1) "Cached execution: 0"
   2) "Query internal execution time: 1.106191 milliseconds"
127.0.0.1:6379> GRAPH..DELETE test
"Graph removed, internal execution time: 0.064498 milliseconds"

第一个终端没有返回任何响应。

关于redis - 观察 Redis 图表中的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74616754/

相关文章:

php - 如何从 php 用户输入创建 redis key ?

ruby-on-rails - 使用Redis跟踪工作进度

neo4j - 由于缺乏具体化,与 RDF 图相比,属性图的表达能力太弱?

sparql - 哪些用例最适合 SPARQL/RDF 三元组存储,但不适合属性图?

sparql - 为什么 TripleStore 不像 Property-Graph Store 那样实现为 Native Graph Store?

node.js - 无法连接到 redis 以与多个工作人员一起使用

list - redis:原子 LPOP 和 SADD 可能吗?

neo4j - Cypher Where 子句不起作用

java - 如何避免重复节点?

neo4j - Neo4j 中所有节点/关系的可靠(自动)递增标识符