您好,登錄后才能下訂單哦!
Neo4j 是當(dāng)今市場圖數(shù)據(jù)庫的領(lǐng)袖, 它具有可伸縮性和高可用性等企業(yè)級功能,是滿足我們需求的最佳選擇.
圖數(shù)據(jù)庫解決哪類問題?
為什么選擇Neo4j?
關(guān)系型數(shù)據(jù)庫不能很好地處理關(guān)系
NoSQL 數(shù)據(jù)庫不處理關(guān)系
Neo4j是基于Java的圖形數(shù)據(jù)庫,運(yùn)行Neo4j需要啟動JVM進(jìn)程,因此必須安裝JAVA SE的JDK
#第一步:安裝jdk
wget?-c?http://download.cashalo.com/schema/auto_jdk.sh source?auto_jdk.sh
#第二步:執(zhí)行如下自動化安裝腳本
#!/bin/bash #neo4j?安裝 #1)設(shè)置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)配置環(huán)境變量 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)?設(shè)置權(quán)限 chmod?+x?/etc/init.d/neo4j #7)?啟動neo4j service?neo4j?start #8)?配置開機(jī)自啟動 chkconfig?neo4j?on
進(jìn)入瀏覽器的7474界面
Cypher 語言
“Cypher”是一個描述性的類Sql的圖操作語言。相當(dāng)于關(guān)系數(shù)據(jù)庫的Sql,可見其重要性!
其語法針對圖的特點(diǎn)而設(shè)計(jì),非常方便和靈活。
沒有Join,是一大特點(diǎn)!
Cypher是一個申明式查詢語言,適合于開發(fā)者和在數(shù)據(jù)庫上做點(diǎn)對點(diǎn)模式(ad-hoc)查詢。
Cypher通過一系列不同的方法和建立于確定的實(shí)踐為表達(dá)查詢而激發(fā)的。許多關(guān)鍵字如like和order by是受SQL的啟發(fā)。正則表達(dá)式匹配實(shí)現(xiàn)模仿Scala 語言。
學(xué)好Cypher是學(xué)好Neo4j的關(guān)鍵,也是核心所在!
Create語法
create (n:Person {id:'20140101',name:'王五',age:30,card:123456})
相當(dāng)于關(guān)系Sql的:
Create table Person(
? id varchar2,
? name varchar2,
? age number,
? card number );
Insert into Person values(‘20140101’,’王五’,30,123456);
Neo4j 字段類型
Match
Match查詢語法
?? Match 相當(dāng)于select
MATCH (n:Person) RETURN n limit 25
等價于:
Select * from Person limit 25
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。