圖數據庫Neo4j簡介以及安裝部署

Neo4j 是當今市場圖數據庫的領袖, 它具備可伸縮性和高可用性等企業級功能,是知足咱們需求的最佳選擇.php


圖數據庫解決哪類問題?正則表達式

爲何選擇Neo4j數據庫


關係型數據庫不能很好地處理關係瀏覽器

WeChat Image_20190707195612.png


NoSQL 數據庫不處理關係bash

WeChat Image_20190707195717.png


image.png

WeChat Image_20190707195846.png


image.png

WeChat Image_20190707195945.png


Neo4j是基於Java的圖形數據庫,運行Neo4j須要啓動JVM進程,所以必須安裝JAVA SE的JDKide


#第一步:安裝jdk
ui


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

#第二步:執行以下自動化安裝腳本
spa



#!/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 <<EOF
export NEO4J_HOME=/usr/local/neo4j
export PATH=\$PATH:\$NEO4J_HOME/bin
EOF
source /etc/profile.d/neo4j
#4) 配置資源
sed -i 's/#dbms.memory.heap.initial_size=512m/dbms.memory.heap.initial_size=2048m/g' /usr/local/neo4j-community/conf/neo4j.conf
sed -i 's/#dbms.memory.heap.max_size=512m/dbms.memory.heap.max_size=2048m/g' /usr/local/neo4j-community/conf/neo4j.conf
sed -i 's/#dbms.connectors.default_listen_address=0.0.0.0/dbms.connectors.default_listen_address=neo4j/g' /usr/local/neo4j-community/conf/neo4j.conf
#5) 配置neo4j啓動腳本
cat >/etc/init.d/neo4j <<EOF
#!/bin/bash
### BEGIN REDHAT INFO
# chkconfig: 2345 99 20
# description: Neo4j Graph Database server
SCRIPTNAME=\$0
NEO4J_CONF=/usr/local/neo4j-community/conf
NEO4J_HOME=/usr/local/neo4j-community
NEO_USER=root
NEO4J_ULIMIT_NOFILE=60000
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=neo4j
DAEMON=\${NEO4J_HOME}/bin/\${NAME}
PIDDIR=\${NEO4J_HOME}/run
PIDFILE=\${PIDDIR}/neo4j.pid
SCRIPTNAME=/etc/init.d/\${NAME}
SYSTEMCTL_SKIP_REDIRECT=1
[ -x "\$DAEMON" ] || exit 0
#[ -r \${NEO4J_CONF}/\${NAME}.conf ] && . \${NEO4J_CONF}/\${NAME}.conf
[ -n "\${NEO_USER}" ] || NEO_USER=\${NAME}
# Debian distros and SUSE
has_lsb_init()
{
  test -f "/lib/lsb/init-functions"
}
# RedHat/Centos distros
has_init()
{
  test -f "/etc/init.d/functions"
}
if has_lsb_init ; then
  . /lib/lsb/init-functions
elif has_init ; then
  . /etc/init.d/functions
else
  echo "Error: your platform is not supported by \${NAME}" >&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界面設計


image.png




Cypher 語言3d

「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 字段類型

image.png


Match

Match查詢語法

   Match 至關於select


MATCH (n:Person) RETURN n limit 25

等價於:

Select * from Person limit 25

相關文章
相關標籤/搜索