Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。
Neo4j底层会以图的方式把用户定义的节点以及关系存储起来,通过这种方式,可是高效的实现从某个节点开始,通过节点与节点间关系,找出两个节点间的联系。
数据模型
图形数据库数据模型的主要构建块是:
- 节点
- 关系
- 属性
一个图会记录几节点和关系,关系用来关联两个节点,节点和关系都可以拥有自己的属性,可以给节点赋予多个标签。
亮点
- 完整的ACID支持
- 高可用性
- 轻易扩展到上亿级别的节点和关系
- 通过遍历工具高速检索数据
Docker中安装
docker pull neo4j
启动neo4j容器
docker run --publish=7474:7474 --publish=7687:7687 --volume=$HOME/neo4j/data:/data neo4j
在浏览器中访问loalhost:7474可以连接到neo4j数据库。
实践
创建一个人节点jgc
create (people:People{name:"jgc",age:24})
创建一个节点猫mary
create(cat:Cat{name:"mary",color:"white"})
节点jgc和节点mary的关系是拥有
match(people:People{name:"jgc"})
match(cat:Cat{name:"mary"})
merge(people)-[:HAVE{since:'2018'}]->(cat)
创建完之后的UI图
使用场景
适用于图形一类数据。这是 Neo4j与其他nosql数据库的最显著区别
例如:社会关系,公共交通网络,地图及网络拓谱,企业基础设施及网络架构