十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Neo4j是当今市场图数据库的领袖, 它具有可伸缩性和高可用性等企业级功能,是满足我们需求的最佳选择.
创新互联专注骨干网络服务器租用十年,服务更有保障!服务器租用,服务器主机托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。
图数据库解决哪类问题?
为什么选择Neo4j?
关系型数据库不能很好地处理关系

NOSQL 数据库不处理关系





Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK
#第一步:安装jdk
wget -c http://download.cashalo.com/schema/auto_jdk.sh source 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)下载安装neo4j
cd /home/tools
wget -c https://neo4j.com/artifact.php?name=neo4j-community-3.4.14-unix.tar.gz
tar 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 1
fi
do_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
;;
esac
EOF
#6) 设置权限
chmod +x /etc/init.d/neo4j
#7) 启动neo4j
service neo4j start
#8) 配置开机自启动
chkconfig neo4j on 进入浏览器的7474界面

Cypher 语言
“Cypher”是一个描述性的类Sql的图操作语言。相当于关系数据库的Sql,可见其重要性!
其语法针对图的特点而设计,非常方便和灵活。
没有Join,是一大特点!
Cypher是一个申明式查询语言,适合于开发者和在数据库上做点对点模式(ad-hoc)查询。
Cypher通过一系列不同的方法和建立于确定的实践为表达查询而激发的。许多关键字如like和order 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字段类型
.jpg)
Match
Match查询语法
Match相当于select
MATCH (n:Person) RETURN n limit 25
等价于:
Select * from Person limit 25