最好配置上环境变量

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第1张图片

连接操作:

zkCli.sh -timeout 1000 -r -server 127.0.0.1
# -timeout 设置客户端和服务器之间的超时时长,单位毫秒
# -r 只读模式,不加就是读写模式
# -server IP:PORT 要连接的服务器

Snip20180528_18.png

查询操作:

ls /   # 查看指定路径下的节点

Snip20180528_21.png

stat PATH # 查看指定节点的状态信息

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第2张图片

get PATH # 获取指定节点的数据,它会包括状态信息

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第3张图片

ls2 PATH # 列出子节点同时输出当前节点的状态信息

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第4张图片

创建节点:

create [-s] [-e] PATH DATA acl # 路径和数据,数据可以为空  -s是顺序节点(会自动在名称后面加序列号) -e是临时节点,不加则是永久节点

我这里在原有/zktest节点下建立了test1子节点,其数据内容为test1

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第5张图片

查看一下数据

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第6张图片

修改节点:

set PATH DATA [version] # 路径和数据,可以设置版本号也可以不设置

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第7张图片

修改版本号

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第8张图片

set /zktest/test1 test002 2
# 这里要么不填写版本号要么版本号就要和上次一致,这里的版本号不是说修改版本号,而是修改版本号为2的 /zktest/test1 节点的数据,
# 这里的版本号是一个条件

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第9张图片

删除操作:

delete PATH [version] # 删除指定路径的节点,且节点必须为空,如果要删除含有子节点的节点则不行
rmr PATH # 递归删除

配额设置:

比如数据内容不能无限的大,子节点不能无限的多这类设置。

setquota -n|-b val path  # -n 是限制子节点个数  -b是限制节点数据长度  val是额度  path 是节点

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第10张图片

奇怪的是设置的子节点数量为2,可是居然能建立3个。其实它的限制只是会在日志中记录,并不会抛出错误,所以就算设置了配置还是可以建立,下面是日志显示

Snip20180531_33.png

# 显示节点配额信息
listquota PATH

Zookeeper详解(四):Zookeeper中的zkCli.sh客户端使用_第11张图片

说明:

  • 第一行是 count=2 子节点限制为2, bytes=-1,表示数据长度没有限制

  • 第二行是 count=4 当前子节点包含自己本身一共有4个节点,其实该节点下只有3个子节点,这里多出的一个就是节点自己,bytes=11 表示包含子节点和自己的数据长度为11,所以第二行显示的是包含自己在内的总数。

# 删除配额设置
delquota [-n|-b] PATH