简单地说,我们现在是Redis
Redis是一个noSQL数据库,允许用户在不同的数据结构中存储不同的数据。我们看到客户需要创建高度连接的数据,并通过使用图形技术获得洞察力。最初于2018年发布,RedisGraph是这种努力的结果。
RedisGraph基于一种独特的方法和体系结构,将Cypher查询语言转换为矩阵操作执行在基于GraphBLAS的发动机.通过使用稀疏矩阵来表示图,以及GraphBLAS处理图的能力,RedisGraph提供了一种快速有效的方法来管理和处理已显示的图数据显著优于其他方法在某些应用中。
自从RedisGraph 1.0版发布以来,该项目已经聚集了1000个GitHub明星和超过100000个Docker拉力。在此期间,我们也一直在努力构建下一个版本,我们很高兴宣布Redisraph 2.0,旨在实现Redisraph 1.0在客户最重要领域的承诺。图形数据库可以支持从资源管理来他althc是.我们一直在努力工作,以支持资源管理、欺诈预防、图形辅助搜索,以及知识图表。
自1.0版以来,RedisGraph的增强功能太多,无法在此处全部列出。我们将通过示例来总结它们,这些示例包括我们对Cypher、完整图形响应和再研究用于在图上进行全文搜索。我们还将详细介绍增强功能RedisInsight支持图表,并引入两个RedisGraph合作伙伴:Linkurious和石墨炉.
要了解更多关于RedisGraph 2.0中显著性能增强的信息,并获得有关基准测试过程的更多信息,请访问RedisGraph 2.0性能基准.
的释放再研究1.6引入了一个新的低级API,允许其他模块使用RedSearch进行二次索引和全文搜索。RedisGraph 2.0是第一个充分利用此功能的通用模块。在此版本之前,RedisGraph通过技工这是相当好的性能,但仅限于精确匹配,不允许前缀或模糊匹配。同样,也没有办法利用给定标签上的两个独立索引作为复合索引。
RedisGraph 2.0支持对属性值进行全文搜索。可以为特定的节点和属性组合创建索引:
调用db.idx.全文索引.createNodeIndex(“人”,“名字”)
然后可以通过密码查询,如下图:
调用db.idx.全文索引.queryNodes(“人”,“鲍勃”)
收益率节点作为p
返回p.的名字
CALL表达式后面可以是各种Cypher表达式。返回的节点可以与匹配表达式组合,以进一步限定搜索结果。用图的连接来丰富搜索结果称为图辅助搜索。
图形辅助搜索的一个例子是查找通过一定程度的分离与个人相连的人。一个常见的例子是LinkedIn中的搜索功能,其中与您关系更密切的人将列在搜索匹配项的顶部。
下面的查询演示了如何实现这一点:
调用db.idx.全文索引.queryNodes(“人”,“%yif%”)收益率节点
匹配p=(节点)-[:有联系的*1..3.]->(:人{的名字:“彼得”})
返回p.的名字,p.标题、长度(p)作为连通性
命令连通性ASC限制20.
RedisGraph 2.0现在可以返回节点、关系和其他数据类型,而不是只返回属性值的表格结果。例如,以前只能返回表格结果(例如,属性值):
匹配(我:人)-->(朋友:人)-->(相脱节:人)
在哪里我.的名字=“彼得”
返回朋友.的名字,相脱节.的名字
用一个全图响应,可以直接返回节点和关系。例如,前面的查询可以返回朋友、朋友的朋友以及他们之间的关系:
匹配(我:人)-->(朋友:人)-[f:朋友]->(相脱节:人)
在哪里我.的名字=“彼得”
返回朋友,f,相脱节
这个新特性支持诸如对象图映射(OGM)、查询子图和可视化接收应用程序需要的所有节点及其关系。
为了演示这个全图响应的强大功能,我们想展示一些与RedisInsight的集成,以及该特性与Linkurious和Graphilean的合作关系。
在RedisInsight RedisGraph
一个这样的应用是RedisInsight,用户现在可以在其中输入查询并接收可视化(如上所示)。完整的图形响应允许RedisInsight呈现可视化,并允许检查查询返回的节点和边的所有属性,而无需事先知道这些属性。
RedisInsight 1.2为探索和查询存储在Redis中的图形提供直接支持。对完整图形响应的新支持允许RedisInsight将查询子图作为可视化直接呈现给用户。随后,用户可以单击图形中的节点和边以检查特性值或进一步展开图形。
Linkurious
Redis已经与这家法国软件开发商合作万博电竞客服Linkurious,它提供了一个企业平台,Linkurious企业,用于通过图形分析进行欺诈、洗钱和网络威胁保护。Linkurious开发了奥格玛为RedisInsight内部的可视化提供动力的库。这个库允许用户可视化地与存储在RedisGraph中的图形进行交互。
此外,RedisGraph 2.0中提供的完整图形响应允许与Linkurious的图形可视化和分析平台集成。我们期待着未来更深入的融合。
此外,RedisGraph 2.0中提供的完整图形响应允许与Linkurious的图形可视化和分析平台集成。我们期待着未来更深入的融合。
石墨炉
2020年1月27日,Redis与荷兰软件公司合作万博电竞客服石墨炉宣布建立合作伙伴关系,让RedisGraph用户使用Graphileon的高级绘图工具管理数据和构建应用程序。RedisGraph和Graphileon的结合使我们的客户能够享受快速、轻松的数据管理,并始终使用Cypher查询语言的强大功能查询和分析数据,同时利用RedisGraph的特定优势。
添加到RedisGraph 2.0的Cypher增强列表如下很长的.值得注意的新增功能包括各种操作符和函数、对简单case语句的支持、增强的合并支持、聚合计数、路径命名支持以及在模式匹配中重用实体。在一篇博客文章中没有办法解释所有的新增内容,所以让我们看一个三元结束语的例子来突出一些最有趣的。
改进后的对合并、路径和操作符的支持允许对图形操作提供新的支持。我们可以根据两个不相关节点之间的特定共享关系来推断一个新的关系。例如,如果两个人认识一个普通人,社交媒体服务可能会建议介绍他们认识。同样,如果两个人由同一个人管理,那么他们在组织中就是同侪。计算这些新的关系是三角闭包的例子。
考虑下面的两个图表。左边的图表显示了一个“朋友”关系(即,谁知道谁)。右边的图表显示了一个组织结构(即,谁管理谁)。在这两个图中,“B”和“C”节点之间的关系都没有出现在图中。
我们可以按照“知道”关系查询左图中建议的介绍:
匹配(b:人)-[:知道]->(一个:人)-[:知道]->(c:人)
哪里没有(b)-[:知道]-(c)及b<>c
返回b,c
该查询遵循通过A从节点B到节点C的“KNOWS”关系,但通过“WHERE not”子句限定我们想要没有现有关系(或循环)的节点。
在右图中,我们可以通过找到一条路径来创建对等关系(通过合并),在该路径中,我们有两个共同管理的人,但没有现有的对等关系:
匹配(b:人)<-[:管理]-(一个:人)-[:管理]->(c:人)
哪里没有(b)-[:同龄人]-(c)及b<>c
合并(b)-[:同龄人]-(c)
我们可以通过向边缘添加角色和方向来进一步限定关系:
匹配(b:人)<-[:管理]-(一个:人)-[:管理]->(c:人)
哪里没有(b)-[:同龄人]-(c)及b<>c
具有b,c,
案例b.水平
什么时候“董事”然后“导师”
其他的“对等”
结束为角色
合并(b)-[:同龄人{角色:角色}]->(c)
请继续关注Redis博客,了解未来几个月新RedisGraph 2.0功能的更多详细示例。我们还致力于对RedisGraph性能、Cypher覆盖率(如可选匹配)进行更多增强,并通过开源软件添加graph算法LAgraphGraphBLAS的算法集合。
RedisGraph 2.0可用途经码头在里面万博体育彩Redis Enterp万博电竞客服rise Software (RS) 5.4.14,及复述,云亲.如果您尝试过RedisGraph 1.0,请查看最新版本,看看有什么新的和改进的。如果您对图形数据库感兴趣,可以考虑研究一下RedisGraph 2.0的强大功能。如果你是Redis图形数据库的新用户,现在是了解RedisGraph可以为现有应用程序做什么的好时机。