skip to Main Content

I’ve recently discovered that redis has a property graph model implementation called redis graph and it’s amazing.

One thing that I really miss for my use-case though, is the ability to "watch" the data. In typical redis data structures I can enable Keyspace notifications or client tracking and be notified on the data mutations I’m interested in, pull data from the server or mark my local cache as "dirty".

I don’t know how that would work for a property graph since relations are much more complex (and the key feature for that matter), but is there a way to watch or synchronize with data stored in redis graph?

2

Answers


  1. No. Unfortunately, currently, there is no way to trigger a keyspace notification whenever nodes or relationships are created, removed, or updated.

    We plan to add such functionality in the future, but there is no specific date we can share right now.

    Login or Signup to reply.
  2. Keyspace notifications can be enabled for modules like this:

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

    The ‘A’ part includes modules—if the module publishes anything. Unfortunately, I tried this with RedisGraph, and it doesn’t.

    You can reproduce my test below. In one terminal I launched redis-cli and did this:

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

    In another I did this:

    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"
    

    The first terminal returned nothing in response to this.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search