上一篇中我们简单的讲解了zooKeeper的作用与安装,链接为 ZooKeeper完全解析(一) zooKeeper的介绍与安装,这次我们详细的讲一下zooKeeper中的命令。
首先需要启动zooKeeper,并开启命令行工具,想要查看zooKeeper的命令,可以使用help命令来查看zooKeeper支持的命令,我们这次主要讲 create、get、ls、ls2、stat、set、delete命令。
一、创建节点:
create [-s] [-e] path data acl
其中 -s 为 创建顺序节点, -e 为 创建临时节点,path即为路径,注意zooKeeper的根路径为 / , 然后再是下面的路径,比如 /test 这种 ,data 即为节点中的数据, acl为访问权限
1.永久节点
默认不加参数即为 永久节点
create /job ""
即创建了一个 /job 永久节点
2.顺序节点
比如创建 /job 下的一个顺序节点
create -s /job/job "123"
则创建了 /job/job0000000001 这个节点
3.临时节点
创建 /job 下面的一个临时节点
create -e /job/job-time "234"
则创建了 /job/job-time 这个临时节点 ,然后输入 quit 退出后,再连接进去,就没有了/job/job-time这个节点。
二、获取节点信息:
查分成三种,一种是查节点中的内容以及节点信息,一种是查节点的子节点,一种是仅查看节点的信息(比如version)
1、查节点中的内容:
get path [watch]
比如要获取 /job 节点中的内容以及节点信息(比如version)(节点中的内容可以用byte数组来存储)
get /job
如果想监听 /job 中节点的内容,则可以
get /job true
这样,当 /job 中的节点信息修改的时候,则可以被监听到 (但子节点更新不会,即只会监听节点信息修改)
2.根据路径查询
ls path [watch] 与
ls2 path [watch]
比如查询 / 根目录下面的节点
ls /
即会输出 [job]
如果需要对 /job 这个节点下的子节点做监听,则可以
ls /job true
那么当子节点修改后,则会收到子节点变动的通知(而节点内容修改则不会)
获取子节点的时候获取节点的详细信息(version等信息,但不包括节点内容)
ls2 /job true
3.仅仅查看节点的信息
stat path [watch]
比如想查看 /job 中的version信息,可以这样
stat /job
如果想做 /job 中的信息被修改的监听,可以这样
stat /job true
三、修改节点中的内容:
set path data [version]
version 即为节点的版本,节点每被设置一次,version就会自动+1(注意添加子节点version不会 +1),可以通过get、stat或者ls2 来查看,(返回值中的dataVersion)。
比如设置 /job 中的内容为 ccdd
set /job "ccdd"
那其dataVersion即变成1了(初始为0)
那么当我想这样,即当dataVersion为1的时候才设置新的值(也就是乐观锁),可以这样:
set /job "eeff" 1
这样如果别人已经修改了,那么我是改不了的。
四、删除节点:
使用
delete path [version]
version 即为节点的版本,加上version的好处(其实相当于一个乐观锁)就是当你得到一个节点的时候,想删除这个节点,但是希望是别人没有修改的时候删除,这时候就可以加上得到这个节点的时候的version。
delete /job 1
即可以删除
如果不加入版本的话,那么就直接删除,比如
delete /job
下一篇 ZooKeeper完全解析(三) 使用Java操作ZooKeeper 中,将会给大家讲解如何用Java操作ZooKeeper。