图数据库neo4j安装与入门
·

一、Neo4j简介
Neo4j是一款高性能的NoSQL图形数据库,由Neo Technology公司于2007年首次发布。它将结构化数据存储在网络上而不是传统的表中,采用了完全不同的数据存储和查询方式。与关系型数据库不同,Neo4j使用节点(nodes)、关系(relationships)和属性(properties)来表示和存储数据,这种设计使其特别适合处理复杂的关系网络。
主要特点
-
原生图处理(Native Graph Processing)
- 使用原生图结构进行存储和查询,而不是将图结构映射到其他存储模型
- 数据以节点、关系和属性的形式直接存储,查询时无需复杂连接操作
- 示例:社交网络中,用户可以直接表示为节点,好友关系作为边连接这些节点
-
ACID事务支持
- 完全支持原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)
- 确保即使在系统故障时也能保持数据一致性
- 支持复杂的多步事务操作
-
Cypher查询语言
- 专为图数据设计的声明式查询语言,语法直观易学
- 类似SQL但针对图结构优化,支持模式匹配查询
- 示例查询:
MATCH (p:Person)-[:FRIEND]->(f) RETURN p.name, f.name
-
可扩展性
- 支持大规模数据存储和处理,可处理数十亿节点和关系
- 提供企业版集群功能,支持高可用和水平扩展
- 适合处理复杂的网络拓扑结构,如推荐系统、知识图谱等
-
丰富的生态系统
- 提供多种编程语言驱动程序(Java、Python、JavaScript等)
- 支持多种数据导入导出格式(CSV、JSON等)
- 包含Neo4j Browser、Bloom等可视化工具
- 与Apache Spark、Kafka等大数据工具集成
典型应用场景
- 社交网络分析(好友推荐、影响力分析)
- 欺诈检测(识别异常交易模式)
- 知识图谱构建和维护
- 推荐系统(基于关系的个性化推荐)
- 网络和IT基础设施管理
二、安装Neo4j
1. Windows系统安装
- 访问Neo4j官网下载页面
- 选择Windows版本下载安装包(.exe或.zip格式)
- 运行安装程序,按照向导完成安装
- 安装完成后,Neo4j浏览器会自动打开(默认地址:http://localhost:7474)
2. macOS系统安装
通过Homebrew安装:
brew install neo4j
brew services start neo4j
或下载DMG安装包:
- 从官网下载macOS版本
- 拖拽应用到Applications文件夹
- 启动Neo4j应用
3. Linux系统安装
Ubuntu/Debian:
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable latest' | sudo tee /etc/apt/sources.list.d/neo4j.list
sudo apt-get update
sudo apt-get install neo4j
sudo systemctl enable neo4j
sudo systemctl start neo4j
CentOS/RHEL:
sudo rpm --import https://debian.neo4j.com/neotechnology.gpg.key
cat <<EOF | sudo tee /etc/yum.repos.d/neo4j.repo
[neo4j]
name=Neo4j RPM Repository
baseurl=https://yum.neo4j.com/stable
enabled=1
gpgcheck=1
EOF
sudo yum install neo4j
sudo systemctl enable neo4j
sudo systemctl start neo4j
三、Neo4j基本概念
1. 节点(Node)
- 图中的实体,可以包含多个标签和属性
- 示例:
(Person {name: 'Alice', age: 30})
2. 关系(Relationship)
- 连接两个节点的有向边,必须有一个类型
- 可以包含属性
- 示例:
(Alice)-[KNOWS {since: 2010}]->(Bob)
3. 属性(Properties)
- 键值对,用于存储节点和关系的附加信息
- 示例:
name: 'Alice',age: 30
4. 标签(Label)
- 用于分类节点
- 一个节点可以有多个标签
- 示例:
:Person,:Employee
四、Cypher查询语言基础
1. 创建数据
创建节点:
CREATE (:Person {name: 'Alice', age: 30})
创建关系:
MATCH (a:Person), (b:Person)
WHERE a.name = 'Alice' AND b.name = 'Bob'
CREATE (a)-[r:KNOWS {since: 2010}]->(b)
2. 查询数据
查询所有Person节点:
MATCH (p:Person) RETURN p
查询特定关系:
MATCH (a)-[r:KNOWS]->(b) RETURN a, r, b
条件查询:
MATCH (p:Person)
WHERE p.age > 25
RETURN p.name, p.age
3. 更新数据
更新节点属性:
MATCH (p:Person {name: 'Alice'})
SET p.age = 31
RETURN p
删除节点:
MATCH (p:Person {name: 'Alice'})
DELETE p
五、Neo4j浏览器使用
- 启动Neo4j后,访问http://localhost:7474
- 首次登录使用默认凭证:
- 用户名:neo4j
- 密码:neo4j
- 首次登录后需要修改密码
- 主要功能区域:
- 查询编辑器:输入和执行Cypher查询
- 结果视图:以表格、图形或文本形式显示结果
- 数据库信息:显示数据库状态和元数据
- 帮助文档:内置Cypher语法参考
六、进阶学习资源
- 官方文档:https://neo4j.com/docs/
- Cypher参考卡:https://neo4j.com/docs/cypher-refcard/current/
- Neo4j图算法库:https://neo4j.com/docs/graph-data-science/current/
- 社区论坛:https://community.neo4j.com/
七、常见应用场景
- 社交网络分析
- 推荐系统
- 欺诈检测
- 知识图谱构建
- 网络和IT运营分析
- 实时路由和导航系统
更多推荐

所有评论(0)