一、前言
随着社交、电商、金融、零售及物联网等行业的发展,现实社会的关系构成了一张复杂而庞大的关系网。传统关系型数据库在处理这类深度关联查询时往往力不从心,即便引入大数据技术,面对海量数据增长时,计算性能也常遭遇瓶颈。因此,支持海量数据关系计算的图数据库应运而生。
二、图数据库 Neo4j 介绍
2.1 什么是图数据库
图数据库(Graph Database)是一种专门用于存储和查询图结构数据的数据库。它不同于传统的关系型数据库(如 MySQL、Oracle,用表和列存储数据)和 NoSQL 数据库(如 MongoDB,用文档存储数据),其核心在于直接存储节点之间的关系,从而在遍历关联数据时获得极高的性能。
2.2 Neo4j 是什么
Neo4j 是目前最流行的原生图数据库之一,采用 Java 编写。它基于 Cypher 查询语言,提供了强大的图分析能力,广泛应用于推荐系统、知识图谱、欺诈检测等场景。
2.3 Neo4j 特点与功能
2.3.1 核心特点
- 高性能:基于索引自由邻接模型,查询复杂度与数据量无关,仅取决于遍历路径长度。
- 灵活建模:无需预先定义 Schema,可随业务需求动态调整数据结构。
- ACID 事务:保证数据的一致性和可靠性。
2.3.2 核心功能
- Cypher 查询语言:声明式语言,直观表达图模式匹配。
- 可视化界面:提供友好的 Web 控制台,便于调试和探索数据。
2.4 Neo4j 优点
相比其他数据库,Neo4j 在处理多表 Join 和递归查询时优势明显,能够大幅减少开发复杂度,提升查询效率。
2.5 核心要素
图数据库主要由节点(Node)、关系(Relationship)和属性(Property)组成。节点代表实体,关系连接节点并定义方向,属性则是键值对形式的元数据。
三、环境准备
3.1 Neo4j 服务搭建过程
推荐使用 Docker 快速部署 Neo4j,避免本地安装的环境配置问题。
3.1.1 下载镜像
docker pull neo4j:latest
3.1.2 创建目录
为持久化数据和日志,建议创建本地映射目录。
mkdir -p ~/neo4j/data ~/neo4j/logs
3.1.3 启动容器
docker run -d \
--name neo4j \
-p 7474:7474 \
-p 7687:7687 \
-v ~/neo4j/data:/data \
-e NEO4J_AUTH=neo4j/password \
neo4j:latest
3.1.4 访问 Neo4j Web 界面
启动后,浏览器访问 http://localhost:7474,使用默认账号 neo4j 和密码 password 登录。首次登录需修改密码。
四、SpringBoot 整合 Neo4j
4.1 前置准备
4.1.1 版本选择
建议使用 Spring Boot 2.x 或 3.x 版本,配合 Spring Data Neo4j 5.x 或 6.x 驱动,确保兼容性。
4.1.2 导入依赖
在 pom.xml 中添加以下依赖:


