文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3.2 Neo4j
Neo4j 是一个高性能的,NOSQL 图形数据库,它将结构化数据存储在网络上而不是表中。它是一个 嵌入式 的、基于 磁盘 的、 具备完全的事务特性的 Java 持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图) 上而不是表中。Neo4j 也可以被看作是一个高性能的图引 擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、 企业级的数据库的所有好处。
存储结构
数据存储主要分为节点、关系、节点或关系上属性这三类数据存储,这些数据也可以通过 Lucene 进行存储检索。
node,relationship,property 存储都是固定大小的。
图 15 Neo4j 数据存储结构
表格 6 Neo4j 数据存储说明
组件 | 长度 bytes | 存储文件 | 简介 |
---|---|---|---|
节点 | 15 | neostore.nodestore.db | |
关系 | 34 | neostore.relationshipstore.db | 双向链表 |
属性 | neostore.propertystore.db | 单向链表 |
图 16 Neo4j 数据存储示例
节点包含指向关系链和属性链的第一个指针。
指向 Label 的指针,可能多个。
属性读取从单向链表的第一个开始
关系读取直接在双向链表中查找,直到找到想要的关系。
集群架构
图 17 Neo4J 集群的架构
每个 Neo4J 集群都包含一个 Master 和多个 Slave。该集群中的每个 Neo4J 实例都包含了图中的所有数据。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论