T O P

[资源分享]     高性能内存图数据库RedisGraph(三)

  • By - 楼主

  • 2021-07-27 12:00:52
  •       这篇文章,我将介绍截止目前,RedisGraph的最新版本(v2.4)对Cypher语言的支持情况。

          1.模式(patterns)

          RedisGraph已支持Cypher中所有的模式。

          2.类型(types)

          作为操作图数据库的查询语言,Cypher的数据类型包括节点(nodes)、关系(relationships)、路径(path)、列表(lists)、地图(maps)、字符串类型(string)等等。目前尚未支持的类型主要是十六进制与八进制数字以及各类时间、日期、持续时间等时态类型(temporal types)。RedisGraph对NULL的实现是将其作为缺失或未定义值的表示。

          3.子句(clauses)

          RedisGraph已支持除REMOVE(用于删除属性值)子句外的全部子句,且基于RedisGraph对NULL的解释方法,可通过设置(SET)属性值为NULL的方法实现REMOVE的功能。

          4.函数(functions)

          函数是Cypher实现复杂查询的基础,是Cypher中十分重要的一部分,一条优美的查询语句离不开恰当的函数与基础的子句的组合。在众多的函数种类中,已经得到RedisGraph全部支持的类别有聚合(aggregating)函数、列表(list)函数、数字数学(math - numeric)函数、断言(predicate)函数、表达式(expression)函数和地理空间(geospatial)函数;得到RedisGraph部分支持的类别有标量(scalar)函数和字符串(string)函数;RedisGraph尚未支持的函数类别有对数数学(logarithmic math)函数、三角数学(trigonometric math)函数和用户自定义(user-defined)函数。

          5.操作符(operators)

          数学操作符中,取幂(exponentiation)操作尚未得到支持;字符串操作符中,正则表达式(regex)尚未得到支持;所有布尔操作符都已得到RedisGraph支持。

          Cypher语句是Neo4j推出的,操作图数据库的查询语句,其地位可以对标关系型数据库中的SQL语言。在操作RedisGraph时,需要按照指定格式使用Cypher命令。如:

    GRAPH.QUERY MotoGP “MATCH (r : Rider)-[: rides]->(t : Team) WHERE t.name = ‘Yamaha’ RETURN r.name, t.name”

          即格式为:

    GRAPH.QUERY Database_name "Cypher codes"

          按以上格式即可使用Cypher操作RedisGraph,但要注意,一定得是RedisGraph已支持的Cypher子句。

    本帖子中包含资源

    您需要 登录 才可以下载,没有帐号?立即注册