一:neo4j优势
作为非关系型数据库中的图数据库,neo4j的使用较为广泛,neo4j有如下优势
1:其底层结构由点(Vertex),边(Edge)构成,点和边上都可以放属性。可以通过某一个已知的点,根据指定关系(边)迅速找到关联的多层数据。(当我们要用关系型数据库,如mysql做这一操作时,若关联维度较多,三层,四层乃至更多,或者表数据较多时,Join操作的性能会很低)
2:非结构化数据存储方式,可以根据实际场景即时设计新的实体和关系,对原来的结构无影响
3:支持事物
4:数据备份,数据恢复导入安全
5:安装操作简单,其查询cypher语句设计易懂
二:neo4j安装
(注:neo4j依赖jdk1.8版本及以上,若没有对应环境请先安装)
下载neo4j安装包
下载安装包,neo4j-community-3.5.0-unix.tar.gz,上传至linux目录下
解压,tar -zxvf neo4j-community-3.5.0-unix.tar.gz
安装包解压后如下
进入对应的根目录下
bin目录:neo4j的基本执行程序,如应用的开启与关闭,cypher语句的操作等等
conf目录:neo4j的配置文件
data目录:数据的管理
import目录:文件导入目录。如将该目录下的对应csv文件导入neo4j数据库
进入conf目录修改配置文件
vim neo4j.conf
找到#dbms.connectors.default_listen_address=0.0.0.0,将注释去掉(该操作为允许http接口远程访问neo4j服务器)
进入bin目录,启动服务
./neo4j start
./neo4j status 查看neo4j允许状态
该状态下则为neo4j正常运行中
打开浏览器,访问 ip:7474端口
默认用户名密码 neo4j/neo4j,登陆后需要修改密码,否则不能远程访问
(linux无浏览器初始化密码方法,Bin目录下 ./cypher-shell登录 neo4j/neo4j,CALL dbms.changePassword('新密码');
三:基础点边创建
1:创建节点
语法:CREATE (:)
其中为该语句中点的别名,可随意取,为标签类型,表示该节点为emp类型,一个节点可以有多个标签。标签后为该节点的属性,可根据实际做映射
create (n:emp{id:"e001",name:"张三"})
create (n:dept{id:"d001",name:"技术部"})
以上两个语句,分别创建了 emp “张三” 和 dept "技术部"
2:创建关系
语法:
CREATE (:)-[(:)]->(:)
关系基于节点,先有节点才能创建对应关系,执行语句
match (n:emp{id:"e001"}),(m:dept{id:"d001"}) create (n)-[r:serving{job:"leader",date:"2008-10-10"}]->(m)
以上语句,先match(查询匹配)到 id为 “e001”的 emp类型节点和 id为 “d001”的dept节点,再创建两节点之间的关系类型serving,该关系有属性 job和date
3:查询
match (n:emp{id:"e001"}),(m:dept{id:"d001"}) return n,m
以上语句,先match(查询匹配)到 id为 “e001”的 emp类型节点和 id为 “d001”的dept节点,再将查询节点展示出来(neo4j官方界面中,只要查出了节点,节点间的关系也会自动展示出来)