您好,登錄后才能下訂單哦!
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?<<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界面
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 字段類型
Match
Match查詢語法
?? Match 相當于select
MATCH (n:Person) RETURN n limit 25
等價于:
Select * from Person limit 25
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。