当前位置: 首页 > news >正文

Windows中Neo4j搭建及安装

图形数据库(Graph Database)是NoSQL数据库家族中特殊的存在,用于存储丰富的关系数据,Neo4j 是目前最流行的图形数据库,支持完整的事务,在属性图中,图是由顶点(Vertex),边(Edge)和属性(Property)组成的,顶点和边都可以设置属性,顶点也称作节点,边也称作关系,每个节点和关系都可以由一个或多个属性。Neo4j创建的图是用顶点和边构建一个有向图,其查询语言cypher已经成为事实上的标准。

关系型数据库只对单个Join操作进行优化查询,而多重Join操作查询的性能显著下降。图形数据库适合查询关系数据,由于图形遍历的局部性,不管图形中由多少节点和关系,根据遍历规则,Neo4j只访问与遍历相关的节点,不受到总数据集大小的影响,从而保持期待的性能;相应地,遍历的节点越多,遍历速度越慢,但是变慢是线性的,这使得图形数据库不适合做海量数据统计分析。对与存在大量丰富关系的数据,遍历的性能不受图形数据量大小的影响,这使得Neo4j成为解决图形问题的理想数据库。

  • 依赖文件 JDK
    下载地址:https://www.oracle.com/java/technologies/javase-jdk15-downloads.html
    安装教程:https://www.cnblogs.com/evolve/archive/2019/11/11/11837869.html

从Neo4j官网下载最新版本Neo4j 3.2 社区(Community)版本 “neo4j-community-3.2.0-windows.zip”,解压到主目录,“C:\Program Files\neo4j-community-3.2.”。

Neo4j应用程序有如下主要的目录结构:

  • bin目录:用于存储Neo4j的可执行程序;
  • conf目录:用于控制Neo4j启动的配置文件;
  • data目录:用于存储核心数据库文件;
  • plugins目录:用于存储Neo4j的插件;

创建主目录环境变量NEO4J_HOME,并把主目录设置为变量值:

Neo4j的配置

配置文档存储在conf目录下,Neo4j通过配置文件neo4j.conf控制服务器的工作。默认情况下,不需要进行任意配置,就可以启动服务器。

1 核心数据文件的位置

例如,核心数据文件存储的位置,默认是在data/graph.db目录中,要改变默认的存储目录,可以更新配置选项:

# The name of the database to mount
#dbms.active_database=graph.db
Paths of directories in the installation.

dbms.directories.data=data

2 安全验证,默认是启用的

# Whether requests to Neo4j are authenticated.
# To disable authentication, uncomment this line
#dbms.security.auth_enabled=false

3 配置JAVA 堆内存的大小

# Java Heap Size: by default the Java heap size is dynamically calculated based on available system resources.
# Uncomment these lines to set specific initial and maximum heap size.
#dbms.memory.heap.initial_size=512m
#dbms.memory.heap.max_size=512m

网络连接配置

1 Neo4j支持三种网络协议(Protocol)

Neo4j支持三种网络协议(Protocol),分别是Bolt,HTTP和HTTPS,默认的连接器配置有三种,为了使用这三个端口,需要在Windows防火墙中创建Inbound Rules,允许通过端口7687,7474和7473访问本机。

2 连接器的可选属性

listen_address:设置Neo4j监听的链接,由两部分组成:IP地址和端口号(Port)组成,格式是:<ip-address>:<port-number>

3 设置默认的监听地址

设置默认的网络监听的IP地址,该默认地址用于设置三个网络协议(Bolt,HTTP和HTTPs)的监听地址,即设置网络协议的属性:listen_address地址。在默认情况下,Neo4j只允许本地主机(localhost)访问,要想通过网络远程访问Neo4j数据库,需要修改监听地址为 0.0.0.0,这样设置之后,就能允许远程主机的访问。

# With default configuration Neo4j only accepts local connections.
# To accept non-local connections, uncomment this line:
dbms.connectors.default_listen_address=0.0.0.0

4 分别设置各个网络协议的监听地址和端口

HTTP链接器默认的端口号是7474,Bolt链接器默认的端口号是7687,必须在Windows 防火墙中允许远程主机访问这些端口号。

# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
#dbms.connector.bolt.listen_address=0.0.0.0:7687
HTTP Connector. There must be exactly one HTTP connector.

dbms.connector.http.enabled=true


dbms.connector.http.listen_address=0.0.0.0:7474

HTTPS Connector. There can be zero or one HTTPS connectors.

dbms.connector.https.enabled=true

dbms.connector.https.listen_address=0.0.0.0:7473

启动Neo4j程序

1 通过控制台启动Neo4j程序

点击组合键:Windows+R,输入cmd,启动DOS命令行窗口,切换到主目录,以管理员身份运行命令:

neo4j.bat console

如果看到以下消息,说明neo4j已经开始运行:

2 把Neo4j安装为服务(Windows Services)

安装和卸载服务:

bin\neo4j install-service
bin\neo4j uninstall-service

启动服务,停止服务,重启服务和查询服务的状态:

bin\neo4j start
bin\neo4j stop
bin\neo4j restart
bin\neo4j status

打开Neo4j集成的浏览器

1 Neo4j浏览器

Neo4j服务器具有一个集成的浏览器,在一个运行的服务器实例上访问 “http://localhost:7474/”,打开浏览器,显示启动页面

默认的host是bolt://localhost:7687,默认的用户是neo4j,其默认的密码是:neo4j,第一次成功登陆到Neo4j服务器之后,需要重置密码。
访问Graph Database需要输入身份验证,Host是Bolt协议标识的主机。

2 在Neo4j浏览器中创建节点和关系

示例,编写Cypher命令,创建两个节点和两个关系:

CREATE (n:Person { name: 'Andres', title: 'Developer' }) return n;
CREATE (n:Person { name: 'Vic', title: 'Developer' }) return n;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)-[r:Friend]->(m) return r;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)<-[r:Friend]-(m) return r;

在$ 命令行中,编写Cypher脚本代码,点击Play按钮,点击创建第一个节点,

在第一个节点创建之后,在Graph模式下,能够看到创建的图形,继续编写Cypher脚本,创建其他节点和关系


在创建完两个节点和关系之后,查看数据库中的图形:

推荐书籍:《Neo4j实战》,原著是《Neo4j in Action》


Reference

  1. https://www.cnblogs.com/jpfss/p/10874303.html
  2. https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

相关文章:

  • dos下筛选字符串的命令/windows下grep替代命令
  • Django框架
  • pip查看包的安装路径
  • ImportError: No module named django.core.management
  • python3项目打包成exe可执行程序
  • Nodejs 中文字符gb2312乱码问题
  • 胖客户端与瘦客户端概念与区别
  • 云计算导论 # 1 云计算概述:起源、概念、发展现状、商业模式、架构与应用
  • 云计算导论 # 2 云服务:概述、体系简介、类型及应用与部署模型
  • 云计算导论 # 3 云存储技术:概念、结构模型、关键技术、分布式数据存储、常见存储结构、应用与问题
  • 云计算导论 # 4 虚拟化
  • 云计算导论 # 习题集锦
  • 云计算导论 # 5 云计算管理平台
  • JS组件系列——Bootstrap 树控件使用经验分享
  • VSCode去除空行
  • 230. Kth Smallest Element in a BST
  • Asm.js的简单介绍
  • co模块的前端实现
  • es的写入过程
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • exif信息对照
  • idea + plantuml 画流程图
  • Javascript基础之Array数组API
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • java中的hashCode
  • js面向对象
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • php面试题 汇集2
  • SQLServer之创建显式事务
  • 从tcpdump抓包看TCP/IP协议
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 爬虫模拟登陆 SegmentFault
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用权重正则化较少模型过拟合
  • 终端用户监控:真实用户监控还是模拟监控?
  • mysql面试题分组并合并列
  • python最赚钱的4个方向,你最心动的是哪个?
  • Spring第一个helloWorld
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (LeetCode 49)Anagrams
  • (待修改)PyG安装步骤
  • (分类)KNN算法- 参数调优
  • (过滤器)Filter和(监听器)listener
  • (力扣)1314.矩阵区域和
  • (七)Knockout 创建自定义绑定
  • (转)树状数组
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 连接数据库,通过数据库生成Modell
  • .NET delegate 委托 、 Event 事件,接口回调
  • .Net Remoting常用部署结构