文章目录
- 1、何为Neo4j
- 2、安装和使用
- 2.1 安装
- 2.2 基础概念
1、何为Neo4j
Neo4j是一个高性能的NOSQL图形数据库,是一个嵌入式的、基于磁盘的,数据结果为网格(图)、具备完全的事务特性的Java持久化引擎。
数据结构
在一个图中包含两种基本的数据类型:Nodes**(节点)** 和 Relationships**(关系)。Nodes** 和 Relationships 包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构。
功能特性
- Property Graph Model(属性图模型)
- Native Graph Processing & Storage(本地图形处理和存储)
- ACID(事务管理)
- Cypher – Graph Query Language(支持Cypher图查询语句)
- REST API(Restful风格的api)
- High-Performance Native API(本机高性能api)
- HTTPS
为啥要使用图数据
- 关系型数据库不擅长处理数据之间的关系,而图数据库在处理数据之间关系方面灵活且高性能
- 社交、物联网、金融、电商等领域数据指数增长的情况下传统的关系型数据库在处理复杂关系的数据上表现很差。因为大多数的处理方式是join连接,数据量很大的情况下耗时严重。
- 查询时间与图的整体规模无关,只与每个节点的邻点数量有关。
2、安装和使用
2.1 安装
**注意因为neo4j依赖jdk,可能出现jdk版本和neo4j版本不一致导致neo4j无法使用 会报错 **
Unsupported Java 1.8.0_144 detected. Please use Oracle(R) Java(TM) 17, OpenJDK(TM) 17 to run Neo4j Server
目前笔者测试环境:jdk : 1.8.0_144 neo4j: 社区版本 3.4.5 可以正常使用
下载tar包
# 访问
https://neo4j.com/download/other-releases/#releases
#直接下载
http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz
解压文件
tar -zxvf neo4j-community-3.4.5-unix.tar.gz -C /usr/local/neo4j/
相关配置
vim /usr/local/neo4j/neo4j-community-3.4.5/neo4j.conf
# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import
# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0
# 默认 bolt端口是7687,bolt端口是7474,https关口是7473,不修改下面3项也可以
#
dbms.connector.bolt.listen_address=:7687
#去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.http.listen_address=:7474
#去掉#,设置https端口为7473,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.https.listen_address=:7473
#去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true
# 允许使用neo4j-shell,类似于mysql 命令行之类的
dbms.shell.enabled=true
#去掉#,设置连接neo4j-shell的端口,一般都是localhost或者127.0.0.1,这样安全,其他地址的话,一般使用https就行
dbms.shell.host=127.0.0.1
#去掉#,设置neo4j-shell端口,端口可以自定义,只要不和其他端口冲突就行
dbms.shell.port=1337
#设置neo4j可读可写
dbms.read_only=false
启动、停止
# 启动 neo4j服务
./bin/neo4j start
# 停止 neo4j服务
./bin/neo4j stop
#查看neo4j状态
./bin/neo4j status
远程登录
http://服务器ip地址:7474/browser/
2.2 基础概念
概念 | 描述 |
---|---|
节点 | neo4j中最基本的数据存储单元 数据存储为key/value 类型的性 |
关系 | 关联任意两个节点,且有方向,关系是也可以包含属性的数据记录 |
标签 | 节点分组,标签可以将多个节点标记为一组 |
= |