前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高性能NoSQL图数据库Neo4j

高性能NoSQL图数据库Neo4j

作者头像
凹谷
发布2022-12-05 18:32:37
2K0
发布2022-12-05 18:32:37
举报

一、Neo4j简介

Neo4j是一个NoSQL的图数据库管理系统,图是一个比线性表和树更高级的数据结构。具有始终保持高效查询性能,不会因数据的增长而降低查询的反应能力,具备事务管理特性,完全支持ACID事务管理。

Neo4j适用于主数据管理、身份识别和访问控制、社交网络、实时推荐引擎、基于图搜索、欺诈检测、网络与IT运营、运输和物流管理及连锁零售等领域。

Neo4j不适合记录大量基于事件的数据、对大规模分布式数据进行处理、二进制数据存储、适合保存在关系型数据库中的结构化数据。

Neo4j企业版是收费的,只有企业版才能使用分布式安装,并提供负载均衡和高可用配置等功能,社区版最多可以使用数十亿个节、关系和属性,对一般小型应用已经足够了。

二、Neo4j API应用

1、基本概念:

与RDBMS相比 :标签->表、节点->行(其中,一个节点可以对应多个标签)、属性->列字段。

支持索引:有效提升查询性能,支持手工定义索引和自动创建模式索引

支持约束:模式约束,比如指定唯一属性

图的遍历算法:

  • 广度优先遍历:获取某节点下的可连接的所有节点数据
  • 深度优先遍历:获取指定的某条路径数据

2、使用Cypher查询语言(简称CQL)-> 类似SQL查询语言一样

3、Neo4j事务管理

  • 原子性、一致性、隔离性、持久性
  • 交互周期:所有的数据操作都必须在事务管理范围内执行
  • 隔离级别:支持显式写锁,避免在一个事务重复读取数据两个结果完全不同
  • 关于死锁:内置了死锁检测机制,抛出异常之前检测出死锁并释放死锁事务

4、其它语言支持Neo4j:Node.js、Python访问Neo4j

三、Neo4j的安装及使用

1、Neo4j性能影响因素:CPU、内存、磁盘、文件系统等

2、安装Neo4j服务器

  • 打开linux默认打开文件限制数,默认是1024,Neo4j最低要求是40000
  • 支持三种不同的连接方式:Bolt、Http和Https

3、Neo4j配置优化:页面高速缓存、堆大小及垃圾收集器

4、使用Neo4j的web控制台

四、Cypher查询语言

CQL设计理念:让简单的事情变得容易,让复杂的事情成为可能

CQL的使用范围:

1、Neo4j-shell:Neo4j自带的一个命令行工具,即在安装服务器bin目录下

2、web控制台

3、Neo4j API

4、Rest API:支撑RESTful调用,具备RestAPI功能

五、使用SDN建模和设计存储库接口

1、SDN(Spring Data Neo4j)属于Spring Data的一个独立子项目,能像JPA使用ORM一样,SDN使用OGM(对象-图映射)将域对象与图数据进行相互转换。

2、Neo4j数据建模基本原则:用节点来表示现实的事物,用关系表示事物之间的联系。

泰戈尔曾说:“你今天受的苦,吃的亏,担的责,扛的罪,忍的痛,到最后都会变成光,照亮你的路。”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据与微服务架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档