BOSS布置下来的任务就是熟悉redis和neo4j,在上面搭建kafka做相关运算。在MAC做相关项目的构建。redis是个键值数据库,neo4j是个图数据库,总之知识图谱就是在这两个上面搞的。

搭建环境

IDEA在官网上下载就好,tb上15买了个lecinse,顺便把pycharm和rider激活了。neo4j从官网上down下来,配好java环境后,直接在neo4j/bin里使用:

./neo4j start

之后在localhost上就可以进入neo4j数据库。

redis同样下载后但复杂点,先进入redis后make一下,在src中使用

./redis-server

打开服务器,之后新建一个window使用

./redis-cli

即可进入redis的交互界面。

redis小记

redis是一种分布式的基于键值对的数据库,基本数据结构有var,list,set,sorted set和hash,一下为tutorial里的基本函数:

#var
set vaule "hello"
get value => hello
empire value 120 # live time
ttl value # -1 for all-ttl, -2 for non-key
INCR a # a++

#list
lpush list 1 # from start insert
rpush list 3 # end
rpush list 2
rpop list
lrange list 0 -1 # from 0 to -1(end) to show
llen list 

#set
sadd set "a1"
sadd set "b1"
sadd set "c1"
srem set "a1" # remove
smembers set # show all
sismember set "b1" # 1 for true


#sorted set
zadd sset 1 "a"
zadd sset 3 "b"
zadd sset 2 "c"
zrange sset 0 -1 # a c b

#hashes,给一个属性设置多个键值对
hset user name "xy"
hset user school "hust"
hget user name => xy
hset user visit 1
hincrby user visit 10 # 1+10 = 11

neo4j小记

neo4j是一个图的数据库,其通过创建和node和relative来构建图,完成一些子图查询的功能。

其核心有节点和关系两个概念。节点有label和各种键值对作为属性,关系里也可以包含方向或属性。其基本语法有:

create(node1:Label {k1:v1 , k2:v2}) return node1
create(node1) - [:related {p1:v1}] ->(node2) return node1,related,node2

可加入~进入模糊匹配,如找到joe的S开头的朋友:

match (user {name : "joe"}) - [:friends] -> (follow) where follow.name=~ 'S.*' return follow.name

另外SET可以设置属性值和标签,而MERGE可以匹配或创建新节点。

IDEA集成

IDEA中自动有spring Initer的选项来使用spring boot,进而集成neo4j与redis。虽然之前javaweb中只接触到了MVC和servlet,还没有碰过spring框架,所以在集成前先补了一波spring的坑,学了波spring boot。

Comments

2019-09-25

⬆︎TOP