zookeeper类似redis,也可以认为是key-value结构的非关系型数据库
help
[zk: localhost:2181(CONNECTED) 2] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
ls
zookeeper的数据结果类似linux文件系统,ls这个命令和linux的ls命令有异曲同工的作用,用于查看zookeeper中存在的key
ls2 查看当前节点数据并能看到更新次数等数据
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls2 /
[zookeeper]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
新增了一个wusp的Znode后,再次执行ls,ls2命令
[zk: localhost:2181(CONNECTED) 3] create /wusp value
Created /wusp
[zk: localhost:2181(CONNECTED) 5] ls /
[zookeeper, wusp]
[zk: localhost:2181(CONNECTED) 7] ls2 /
[zookeeper, wusp]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 2
create 创建一个新的Znode节点
语法:create path data
[zk: localhost:2181(CONNECTED) 3] create /wusp value
Created /wusp
【data】是否可以省略?
从输入命令的现象来看,data的内容不可省略,不然无法创建成功,但也没有提示
[zk: localhost:2181(CONNECTED) 8] ls /
[zookeeper, wusp]
[zk: localhost:2181(CONNECTED) 9] create /testNoData
[zk: localhost:2181(CONNECTED) 10] ls /
[zookeeper, wusp]
[zk: localhost:2181(CONNECTED) 11]
【path】只能一级一级的创建,不然上级data怎么设值?
[zk: localhost:2181(CONNECTED) 12] create /rootPath/path1 dataValue
Node does not exist: /rootPath/path1
get 获取Znode节点的值&显示Znode节点的stat信息
[zk: localhost:2181(CONNECTED) 11] get /wusp
value
cZxid = 0x4
ctime = Sun May 14 17:33:09 CST 2023
mZxid = 0x4
mtime = Sun May 14 17:33:09 CST 2023
pZxid = 0x4
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
stat 显示Znode节点的stat信息
[zk: localhost:2181(CONNECTED) 1] stat /wusp
cZxid = 0x4
ctime = Sun May 14 17:33:09 CST 2023
mZxid = 0x5
mtime = Sun May 14 17:52:57 CST 2023
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
set 修改Znode节点的值 & 显示Znode节点的stat信息
[zk: localhost:2181(CONNECTED) 12] set /wusp newValue
cZxid = 0x4
ctime = Sun May 14 17:33:09 CST 2023
mZxid = 0x5
mtime = Sun May 14 17:52:57 CST 2023
pZxid = 0x4
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 8
numChildren = 0
mtime,dataLength相对于上面已发生了变化
delete 删除Znode节点
[zk: localhost:2181(CONNECTED) 13] create /testDelete delete
Created /testDelete
[zk: localhost:2181(CONNECTED) 14] delete /testDelete
[zk: localhost:2181(CONNECTED) 15] get /testDelete
Node does not exist: /testDelete
注意:delete命令删除的Znode节点不能存在子节点,否则删除不成功。
[zk: localhost:2181(CONNECTED) 16] create /testDelete1 delete1
Created /testDelete1
[zk: localhost:2181(CONNECTED) 17] create /testDelete1/a aaa
Created /testDelete1/a
[zk: localhost:2181(CONNECTED) 19] delete /testDelete1
Node not empty: /testDelete1
rmr 删除当前节点及其子节点
[zk: localhost:2181(CONNECTED) 20] rmr /testDelete1
[zk: localhost:2181(CONNECTED) 21] create /testRmr rme
Created /testRmr
[zk: localhost:2181(CONNECTED) 22] rmr /testRmr