Neo4j在linux环境下的安装

本文详细介绍Neo4j图形数据库的特性,包括高性能、灵活的数据存储结构和事务特性。对比社区版与企业版,解析安装配置流程,以及适用于大规模、复杂关系数据的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Neo4j简介

  Neo4j是一个高性能的、NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下,而不是严格、静态的表中,但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JDK1.8及以上版本。

  Neo4j分为Neo4j分社区版(Community Edition)和企业版(Enterprise Edition),社区版为免费版本。Neo4j社区版和企业版在功能上没有本质区别,主要区别在如下几点:
  1)容量:社区版最多支持 320 亿个节点、320 亿个关系和 640 亿个属性,而企业版没有这个限制。
  2)并发:社区版只能部署成单实例,不能做集群。而企业版可以部署成高可用集群或因果集群,从而可以解决高并发量的问题。
  3)容灾:由于企业版支持集群,部分实例出故障不会影响整个系统正常运行。
  4)热备:社区版只支持冷备份,即需要停止服务后才能进行备份,而企业版支持热备,第一次是全量备份,后续是增量备份。
  5)性能:社区版最多用到 4 个内核,而企业能用到全部内核,且对性能做了精心的优化。企业版的性能大概是社区版的2~4倍。
  6)支持:企业版客户能得到 5X10 电话支持(Neo4j 美国电话、邮件,微云数聚电话、微信、邮件)。

二、Neo4j优缺点

1、优点

1)更快的数据库操作。当然,有一个前提条件,那就是数据量较大,在MySql中存储的话需要许多表,并且表之间联系较多(即有不少的操作需要join表)。
2)数据更直观,相应的SQL语句也更好写(Neo4j使用Cypher语言,与传统SQL有很大不同)。
3)更灵活。不管有什么新的数据需要存储,都是一律的节点和边,只需要考虑节点属性和边属性。而MySql中即意味着新的表,还要考虑和其他表的关系。
4)数据库操作的速度并不会随着数据库的增大有明显的降低。这得益于Neo4j特殊的数据存储结构和专门优化的图算法。

2、缺点

1)插入速度比较慢。可能是因为创建节点和边的时候需要保存一些额外信息(为了查询服务)。
2)超大节点处理效率低。当有一个节点的边非常多时(常见于大V),有关这个节点的操作的速度将大大下降。
3)无法增加分配内存的方法,提高数据库速度。

3、适用场景

鉴于其明显的优缺点,Neo4j适合存储”修改较少,查询较多,没有超大节点“的图数据。

4、图数据库选择Neo4j的理由

1)作为较早的一批图形数据库之一,文档和各种技术博客较多。
2)flockdb虽说操作可能简单,也轻量级,但是安装过程复杂,依赖太多。
3)orientdb和arangodb从易用性来说都差不多,速度上arangodb相对最快,因为其使用了混合索引,但是从稳定性来说,neo4j是最好的。

三、安装环境

  Neo4j的安装对硬件、系统等有一些要求,例如CPU、Memory、Disk、Filesystem、Software等。
1)CPU
关于CPU,最低要求是Itel Core i3 推荐使用Intel Core i7 或 IBM POWER 8。
2)Memory
关于Memory,最低要求是2GB, 推荐是16-32GB 或更多。 越大的内存允许处理越大的图,但必须正确配置,以免破垃圾收集坏性操作。
3)Disk
除了Disk的容量,Disk的性能对Neoj4的影响非常大,Neo4j的工作负载倾向于随机读。选择平均寻址时间低的存储,例如SSD,最低要求 10GB SATA,推荐配置 SSD w/SATA。
4)FileSystem
最低要求 ext4(或类似的),推荐配置 ext4、ZFS。
5)Software
必须安装OpenJDK 8 或 Oracle Java 8及以上版本。
6)Operation Sytem
Linux(Ubuntu, Debian等) 。我的测试环境为CentorOS 6.6,暂时还没有发现什么问题。

四、安装步骤

  Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JDK1.8及以上版本。

1、下载安装包

Neo4j下载地址:
https://neo4j.com/download/other-releases/#releases
或者直接在服务器上使用命令下载
curl -O http://dist.neo4j.org/neo4j-community-3.4.5-unix.tar.gz

2、解压安装

tar -axvf neo4j-community-3.4.5-unix.tar.gz

3、修改配置

在安装目录下找到conf目录下的neo4j.conf文件,修改相应配置如下:

# 修改第22行load csv时l路径,在前面加个#,可从任意路径读取文件
#dbms.directories.import=import

# 修改35行和36行,设置JVM初始堆内存和JVM最大堆内存
# 生产环境给的JVM最大堆内存越大越好,但是要小于机器的物理内存
dbms.memory.heap.initial_size=5g
dbms.memory.heap.max_size=10g

# 修改46行,可以认为这个是缓存,如果机器配置高,这个越大越好
dbms.memory.pagecache.size=10g

# 修改54行,去掉改行的#,可以远程通过ip访问neo4j数据库
dbms.connectors.default_listen_address=0.0.0.0

# 默认 bolt端口是7687,http端口是7474,https关口是7473,不修改下面3项也可以
# 修改71行,去掉#,设置http端口为7687,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.bolt.listen_address=:7687

# 修改75行,去掉#,设置http端口为7474,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.http.listen_address=:7474

# 修改79行,去掉#,设置http端口为7473,端口可以自定义,只要不和其他端口冲突就行
dbms.connector.https.listen_address=:7473

# 修改227行,去掉#,允许从远程url来load csv
dbms.security.allow_csv_import_from_file_urls=true

# 修改246行,允许使用neo4j-shell,类似于mysql 命令行之类的
dbms.shell.enabled=true

# 修改248行,去掉#,设置连接neo4j-shell的端口,一般都是localhost或者127.0.0.1,这样安全,其他地址的话,一般使用https就行
dbms.shell.host=127.0.0.1

# 修改250行,去掉#,设置neo4j-shell端口,端口可以自定义,只要不和其他端口冲突就行
dbms.shell.port=1337

# 修改254行,设置neo4j可读可写
dbms.read_only=false

# 设置JDK,若系统默认是jdk1.8及以上可以不需要设置
JAVA_HOME=/usr/java/jdk1.8.0_144
JRE_HOME=/usr/java/jdk1.8.0_144/jre
4、启动及其他命令

进入bin目录执行执行如下命令

后台启动:./neo4j start
前台启动:./neo4j console
查看状态:./neo4j status
停止:./neo4j stop
重启:./neo4j restart
5、客户端访问
http://服务器ip地址:7474/browser/

在浏览器上第一次访问图数据库所在的机器上的7474端口时,账号neo4j,密码neo4j,会提示修改初始密码。若出现404错误,可能被防火墙阻止了7474端口的访问,需要在防火墙中设置。
在这里插入图片描述

五、其他配置

1、开机启动
vi /etc/rc.d/rc.local
在文件最后添加如下命令行:
/usr/share/neo4j/bin/neo4j start
其中/usr/share/neo4j/bin/是安装Neo4j的路径,然后保存。
2、修改环境变量
vi /etc/profile
export NEO4J_HOME=/opt/moudles/neo4j/neo4j-community-3.2.10
export PATH=$PATH:$NEO4J_HOME/bin
3、修改可操作文件数量
vi /etc/security/limits.conf
neo4j soft nofile 40000
neo4j hard nofile 40000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值