Zookeeper学习笔记-客户端命令简介

文章目录

    • 1、Create - 创建Zookeeper节点
    • 2、ls / get - 读取节点信息
    • 3、set - 更新节点信息
    • 4、delete - 删除节点信息

本文简单介绍下zk客户端中增删改查命令的使用,首先,在ZK安装目录下的bin目录下执行以下命令,启动3个zk服务

./zkServer.sh start ../conf/zoo1.cfg
./zkServer.sh start ../conf/zoo2.cfg
./zkServer.sh start ../conf/zoo3.cfg

使用如下命令链接zk客户端

./zkCli.sh -server ip:port

我的zk服务启动在本地,3个端口分别为2182,2183,2184,随便选择一台进行连接:

./zkCli.sh -server 127.0.0.1:2184

启动成功后如图

首先输入help命令看看都有哪些客户端命令
Zookeeper学习笔记-客户端命令简介_第1张图片

1、Create - 创建Zookeeper节点

语法如下:

create [-s] [-e] path data acl

-s:代表SEQUENTIAL,即顺序节点特性
-e:代表EPHEMERAL,即临时节点特性,不加-s -e默认创建永久节点
path:为节点路径,如/zkParentNode,/zkParentNode/subNode
acl:用于zk权限控制,一般用不到

测试永久节点创建

create /persistentNode 1

测试顺序节点创建

create -s /senquentialNode 1

测试临时节点创建

create -e /ephemeralNode 1

查看节点数据,节点数据如下

在这里插入图片描述
断开连接(quit)后,重新连接客户端,看临时节点是否存在
在这里插入图片描述
可以看到,临时节点ephemeralNode已经没了(连接断开后自动删除)
在这里插入图片描述

2、ls / get - 读取节点信息

  • 列出指定节点路径下子节点信息
ls path [watch]

path-节点路径
watch-为该节点添加一个监听器,监听器只会触发一次,如果在该path下创建子节点,会产生NodeChildrenChanged事件,如果在path下删除子节点,会产生NodeChildrenChanged事件,删除该path所在节点,会产生NodeDeleted事件

如上图例子中 ls / 列出了 /目录下所有节点信息,其中zookeeper节点为默认节点信息
在这里插入图片描述
测试watch机制
先执行如下命令,给persistentNode下添加个名为myWatcher的监听器

ls /persistentNode myWatcher

此时在persistentNode下新建节点,效果如下图所示

Zookeeper学习笔记-客户端命令简介_第2张图片

  • 读取指定节点数据信息和属性信息
 get path [watch]

Zookeeper学习笔记-客户端命令简介_第3张图片
箭头处内容为数据内容
属性字段如下:

属性名 说明
cZxid 节点创建时事务id
cTime 节点创建时间
mZxid 节点最后一次更新时事务id
mTime 节点最后一次更新时间
pZxid 节点子节点列表变化的事务id(子节点列表变化,不是子节点内容变化)
cVersion 子节点版本号
dataVersion 数据节点内容版本号,更新后+1
aclVersion ACL版本号
ephemeralOwner 若为临时节点,则为创建节点的会话sessionId,若为永久节点则为0
dataLength 节点数据长度
numChildren 子节点数量

3、set - 更新节点信息

set path data [version]

version:标识更新是基于节点哪个dataVersion进行更新

本地对持久节点进行更新测试,结果如下

set /persistentNode 2

Zookeeper学习笔记-客户端命令简介_第4张图片
可以看到mZxid变大了,mTime变成当前时间,同时dataVersion从0变成1

4、delete - 删除节点信息

删除指定路径节点(节点下必须没有子节点)

delete path [version]

创建一个节点delete,并在delete下新建delete1节点信息
在这里插入图片描述
尝试删除delete节点,提示node not empty
在这里插入图片描述
先删除子节点,此时delete父节点下午子节点,再删除父节点,删除成功
在这里插入图片描述

你可能感兴趣的:(zookeeper,客户端,Zookeeper)