这篇文章主要介绍用一下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. nvGRAPH API参考分析(二)

    nvGRAPH API参考分析(二) nvGRAPH Code Examples 本文提供了简单的示例. 1. nvGRAPH convert topology example void check( ...

  2. 基于TensorRT优化的Machine Translation

    基于TensorRT优化的Machine Translation 机器翻译系统用于将文本从一种语言翻译成另一种语言.递归神经网络(RNN)是机器翻译中最流行的深度学习解决方案之一. TensorRT机 ...

  3. 移动通信-5G

    1.移动通信的发展历程: "G"代表一代,每10年一个周期 1G 2G 3G 4G 5G 1980s 1990s 2000s 2010s 2020s 语音 短信 社交应用 在线.互 ...

  4. Java知识,面试总会问到虚拟机,虚拟机类加载机制你懂吗?

    虚拟机把描述类的数据从Class文件文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 与那些在编译时需要进行连接工作的语言不同 ...

  5. 深度解密:Java与线程的关系

    并发不一定要依赖多线程(如PHP的多进程并发),但在Java中谈论并发,大多数都与线程脱不开关系. 线程的实现 线程是CPU调度的基本单位,Thread类与大部分的Java API有显著的差别,它的所 ...

  6. DOS命令行(10)——reg/regini-注册表编辑命令行工具

    注册表的介绍 注册表(Registry,台湾.港澳译作登錄檔)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.   1. 数据结构 注册表由键(key,或称 ...

  7. [源码解析] 深度学习分布式训练框架 horovod (9) --- 启动 on spark

    [源码解析] 深度学习分布式训练框架 horovod (9) --- 启动 on spark 目录 [源码解析] 深度学习分布式训练框架 horovod (9) --- 启动 on spark 0x0 ...

  8. webpack(2)webpack核心概念

    前言   本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具.当 webpack 处理应用程序时,它会在内部构建一个 依赖图(dependency graph) ...

  9. CentOS-Docker搭建Kafka(单点,含:zookeeper、kafka-manager)

    Docker搭建Kafka(单点,含:zookeeper.kafka-manager) 下载相关容器 $ docker pull wurstmeister/zookeeper $ docker pul ...

  10. Python分析【公众号】历史评论,看看大家的留言情况!

    大家好,我是辰哥~~~ 辰哥玩公众号有一段时间了,这期文章分析一波读者的留言情况,不仅可以对公众号的各位铁粉一目了然,还可以通过分析的结果对公众号的经营进行更好的规划.如读者留言的内容通常是内容是什么 ...