千家信息网

图数据库Neo4j简介以及安装部署

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,Neo4j 是当今市场图数据库的领袖, 它具有可伸缩性和高可用性等企业级功能,是满足我们需求的最佳选择.图数据库解决哪类问题?为什么选择Neo4j?关系型数据库不能很好地处理关系NoSQL 数据库不处
千家信息网最后更新 2025年02月02日图数据库Neo4j简介以及安装部署

Neo4j 是当今市场图数据库的领袖, 它具有可伸缩性和高可用性等企业级功能,是满足我们需求的最佳选择.


图数据库解决哪类问题?

为什么选择Neo4j


关系型数据库不能很好地处理关系


NoSQL 数据库不处理关系




Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK


#第一步:安装jdk


wget -c http://download.cashalo.com/schema/auto_jdk.shsource auto_jdk.sh

#第二步:执行如下自动化安装脚本



#!/bin/bash#neo4j 安装#1)设置hosts绑定IP=`ifconfig|sed -n 2p|awk '{print $2}'|cut -d ":" -f2`echo "$IP neo4j" >>/etc/hosts#2)下载安装neo4jcd /home/toolswget -c https://neo4j.com/artifact.php?name=neo4j-community-3.4.14-unix.tar.gztar zxvf artifact.php\?name\=neo4j-community-3.4.14-unix.tar.gz -C /usr/local/ln -s /usr/local/neo4j-community-3.4.14 /usr/local/neo4j-community#3)配置环境变量cat >/etc/profile.d/neo4j </etc/init.d/neo4j <&2  exit 1fido_start(){  do_ulimit  [ -d "\${PIDDIR}" ] || mkdir -p "\${PIDDIR}"  chown "\${NEO_USER}:" "\${PIDDIR}"  if has_lsb_init ; then    start-stop-daemon --chuid \${NEO_USER} --start --quiet --oknodo --pidfile \${PIDFILE} --exec \${DAEMON} -- start  else    daemon --user="\${NEO_USER}" --pidfile="\${PIDFILE}" "\${DAEMON} start > /dev/null 2>&1 &"  fi}do_stop(){  \${DAEMON} stop}do_status(){  if has_lsb_init ; then    status_of_proc -p "\${PIDFILE}" "\${DAEMON}" "\${NAME}"  else    status -p "\${PIDFILE}" "\${NAME}"  fi}do_ulimit(){  if [ -n "\${NEO4J_ULIMIT_NOFILE}" ]; then    ulimit -n "\${NEO4J_ULIMIT_NOFILE}"  fi}case "\$1" in  start)    do_start    ;;  stop)                                                              do_stop    ;;  status)    do_status    ;;  restart|force-reload)    do_stop && do_start    ;;  *)    echo "Usage: \$SCRIPTNAME {start|stop|status|restart|force-reload}" >&2    exit 3    ;;esacEOF#6) 设置权限chmod +x /etc/init.d/neo4j#7) 启动neo4jservice neo4j start#8) 配置开机自启动chkconfig neo4j on



进入浏览器的7474界面





Cypher 语言

"Cypher"是一个描述性Sql图操作语言。相当于关系数据库的Sql,可见其重要性!

其语法针对图的特点而设计,非常方便和灵活。

没有Join,是一大特点!


Cypher是一个申明式查询语言,适合于开发者和在数据库上做点对点模式(ad-hoc)查询。


Cypher通过一系列不同的方法和建立于确定的实践为表达查询而激发的。许多关键字如likeorder by是受SQL的启发。正则表达式匹配实现模仿Scala 语言。

学好Cypher是学好Neo4j的关键,也是核心所在!


Create语法

create (n:Person {id:'20140101',name:'王五',age:30,card:123456})

相当于关系Sql的:

Create table Person(

id varchar2,

name varchar2,

age number,

card number );

Insert into Person values('20140101','王五',30,123456);


Neo4j 字段类型


Match

Match查询语法

Match 相当于select


MATCH (n:Person) RETURN n limit 25

等价于:

Select * from Person limit 25







0