这篇文章主要介绍用一下RedisGraph的历史和现状。

2018年5月,Redis Labs发布了RedisGraph的预览/测试版。6个月后,在Redis Labs和开源社区的开发者们的共同努力下,RedisGraph的第一个GA正式版本RedisGraph v1.0发行。截止2019年3月,RedisGraph v1.0共进行了15个小版本升级,解决了许多诸如内存泄漏、查询异常的问题,增加了众多功能。也根据社区和客户的反馈,不断扩展RedisGraph模块对函数和查询语句的支持范围。2020年1月,RedisGraph的2.0版本正式发布,自RedisGraph v1.0版发布以来,该项目已经获得了超过1000个GitHub标星和10000多个Docker pull。自1.0版以来,RedisGraph的增强太多,此处无法一一列举,但其中有几个较为重要的进展与突破:

首先是全文搜索,RedisSearch是Redis推出的一个高性能的全文搜索引擎,Redis的使用者可通过加载模块的方式使用它。RedisSearch 1.6的发行版引入了一个新的低级API,该API允许其他模块使用RedisSearch进行二级索引和全文搜索。RedisGraph 2.0是第一个充分利用此功能的通用Redis模块。在此版本之前,RedisGraph通过skiplists实现的索引功能性能优异,但是其仅限于精确匹配,并且不支持前缀或模糊匹配,而且也没法基于给定的标签将两个单独索引用作复合索引。

然后是完整图响应,RedisGraph 2.0不仅可以返回属性值的表格型结果,还可以返回节点,关系和其他数据类型。这项新功能将允许诸如对象图映射(OGM),查询子图和可视化等操作。基于这个完整图响应的强大功能,RedisGraph实现了一些与RedisInsight的集成,并建立了与Linkurious和Graphileon的合作伙伴关系。

RedisInsight是Redis Labs推出的用于简化Redis应用程序开发的GUI,它为Redis提供了直观,高效的GUI,通过对大多数流行的Redis模块的内置支持,用户可以与数据库进行交互并管理库中的数据。它提供了一些工具来分析数据库的使用情况,分析当前库内存占用情况,并指导用户更好地使用Redis。在这个应用程序中,用户可以输入查询并获得可视化小伙。前文中提到的完整图响应的功能允许RedisInsight呈现可视化效果,并允许检查查询返回的节点和边的所有属性,而无需事先知道这些属性。RedisInsight 1.2为探索和查询Redis中存储的图提供了直接支持。对全图响应的新支持使RedisInsight可以将查询子图以可视化形式直接呈现给用户。随后,用户可以单击图形中的节点和边缘以检查属性值或进一步扩展图形。但由于目前RedisGraph对Cypher的支持范围有限,因此用户无法在RedisInsight上直接进行本文中设计的查询操作。因此,虽然RedisInsight是一个功能十分完备的Redis数据库GUI,它提供了很好的可视化效果和交互操作。但作为一个数据库管理软件,无法提供用户想要的查询接口,RedisInsight还需要等待RedisGraph的发展脚步。如果你想体验一下RedisGraph,那么目前来说RedisInsight是最佳选择。

Redis Labs与法国软件开发商Linkurious达成合作,在Linkurious的企业平台Linkurious Enterprise上,Linkurious开发了OGMA库,该库可为RedisInsight内部的可视化提供支持,使用户可以直观地与RedisGraph中存储的图进行交互。同样,RedisGraph 2.0中提供的全图响应功能将允许与Linkurious的图数据可视化和分析平台集成,双方未来或许会有更深度的整合。

2020年1月,Redis Labs与荷兰软件公司Graphileon宣布建立合作伙伴关系,以允许RedisGraph用户在Graphileon的高级绘图工具中构建应用程序。RedisGraph和Graphileon的结合使用户能够享受快速简便的数据管理,并利用RedisGraph支持的部分Cypher查询语言的功能来查询和分析数据,同时充分利用RedisGraph的独特优势。

目前RedisGraph的最新版本为v2.2,在Redis Labs和来自开源社区的开发者们的共同努力下,RedisGraph相较于初代,性能提升了多达六倍,支持的Cypher语言的范围也大大增加。下篇文章,我将介绍RedisGraph已经支持的Cypher(常用部分)

高性能内存图数据库RedisGraph(二)的更多相关文章

  1. 高性能内存图数据库RedisGraph(一)

    作为一种简单.通用的数据结构,图可以表示数据对象之间的复杂关系.生物信息学.计算机网络和社交媒体等领域中产生的大量数据,往往是相互连接.关系复杂且低结构化的,这类数据对传统数据库而言十分棘手,一个简单 ...

  2. 高性能内存图数据库RedisGraph(三)

    这篇文章,我将介绍截止目前,RedisGraph的最新版本(v2.4)对Cypher语言的支持情况. 1.模式(patterns) RedisGraph已支持Cypher中所有的模式. 2.类型(ty ...

  3. Neo4j:图数据库GraphDB(二)高级查找

    接着上一篇,继续介绍图数据库Neo4j: http://www.cnblogs.com/rongyux/p/5537028.html 三 高级查找操作 1过滤   name = "Tom H ...

  4. 各个JAVA场景下的内存图

    首先,内存模型图,如下: 其次,一句话概括各个区域的作用: 1:程序计数器(Program Counter Register),让虚拟机中的字节码解释器通过改变计数器的值来获取下一条代码指令,比如分支 ...

  5. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  6. Pick of the Week'19 | 图数据库 Nebula 第 47 周看点-- insert 的二三事

    每周五 Nebula 为你播报每周看点,每周看点由本周大事件.用户问答.Nebula 产品动态和推荐阅读构成. 今天是 2019 年第 47 个工作周的周五,来和 Nebula 看看本周有什么图数据库 ...

  7. Neo4j图数据库管理系统开发笔记之二:管理系统Server端界面一览

    最近在neo4j java api和rmi的基础上,设计了一套neo4j管理工具,分为server端和client端,中间用rmi进行通信.基本功能包括图数据库基本信息维护管理(创建.编辑.删除.统计 ...

  8. Nebula 架构剖析系列(二)图数据库的查询引擎设计

    摘要 上文(存储篇)说到数据库重要的两部分为存储和计算,本篇内容为你解读图数据库 Nebula 在查询引擎 Query Engine 方面的设计实践. 在 Nebula 中,Query Engine ...

  9. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

随机推荐

  1. Consistent 与 Mirrored 视角

    Consistent 与 Mirrored 视角 在进行分布式训练时,OneFlow 框架提供了两种角度看待数据与模型的关系,被称作 consistent 视角与 mirrored 视角. 本文将介绍 ...

  2. 多实例gpu_MIG技术快速提高AI生产率

    多实例gpu_MIG技术快速提高AI生产率 Ride the Fast Lane to AI Productivity with Multi-Instance GPUs 一.平台介绍 NVIDIA安培 ...

  3. 关于switch语句的使用方法---正在苦学java代码的新手之菜鸟日记

    输入月份与年份,判断所输入的月份有多少天. switch支持和不支持的类型 支持的类型 int 类型 short 类型 byte 类型 char 类型 enum (枚举)类型 (java5.0 之后支 ...

  4. 终于放弃了单调的swagger-ui了,选择了这款神器—knife4j

    knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案(在非Java项目中也提供了前端UI的增强解决方案),前身是swagger-bootstrap-ui,取名knife ...

  5. 关于MySQL索引面试题的六连炮!招架的住吗?

    1.面试真题 MySQ索引的原理和数据结构能介绍一下吗? b+树和b-树有什么区别? MySQL聚簇索引和非聚簇索引的区别是什么? 他们分别是如何存储的? 使用MySQL索引都有哪些原则? MySQL ...

  6. LockSupport中的park()与unpark()

    类注释原文:Basic thread blocking primitives for creating locks and other synchronization classes.意思就是Lock ...

  7. 【模拟8.10】Weed(线段树)

    考试只好随便骗骗分过去啦啦啦..... 正解是玄学线段树: 以每个操作为叶子节点,我们定义几个变量ce表示层数,h表示高度,add表示所减的层数 那么问题转化为单点修改的问题输出直接是根节点答案 但是 ...

  8. 【题解】poj 3254 Corn Fields

    题目描述 农场主John新买了一块长方形的新牧场,这块牧场被划分成M行N列(1 ≤ M ≤ 12; 1 ≤ N ≤ 12),每一格都是一块正方形的土地.John打算在牧场上的某几格里种上美味的玉米,供 ...

  9. LM-MLC 一种基于完型填空的多标签分类算法

    LM-MLC 一种基于完型填空的多标签分类算法 1 前言 本文主要介绍本人在全球人工智能技术创新大赛[赛道一]设计的一种基于完型填空(模板)的多标签分类算法:LM-MLC,该算法拟合能力很强能感知标签 ...

  10. Vue 动态参数

    v-on和v-bind可以动态绑定一个参数,用[]来绑定一个可以改变的值. <li v-on:[event]="print"></li> <scrip ...