Zookeeper常用命令详解
使用的版本是Zookeeper3.6.1,不同版本会有一定的差异性。
新增命令
语法:create [-s] [-e] [-c] [-t ttl] path [data] [acl]
参数:使用[]包含的是可选参数。
[-s] : 创建有序节点。
[-e] : 创建临时节点。
[-c] : 创建一个容器节点。
[t ttl] : 创建一个TTL节点, -t 时间(单位毫秒)。
path: 路径 ,因为没有中括号,所以是必须参数。
[data]:节点的数据,可选,如果不使用时,节点数据就为null。
[acl] :权限相关,后面文章讲。
例子:
创建持久化节点:
create /node1 "123456789"
创建持久化有序节点:
create -s /node2 "123456789"
创建临时节点
create -e /node3 "123456879"
创建临时有序节点
create -e -s /node3 "123456879"
创建容器节点
create -c /node3 "123456879"
创建TTL节点
create -t 2000 /node3 "123456879"
创建有序节点时,Zookeeper会在我们知道的节点名称后面补一个有序的,唯一的递增数字后缀。
查看命令
get [-s] [-w] path
查看节点数据,我用的是3.6.1的版本,只会打印节点数据,之前的某个版本及之前是查看节点数据加节点元信息的。如果现在要返回节点数据加节点元信息可以使用-s参数。
[-s] :查看节点数据加元信息。
[-w] : 查看节点并为节点添加一个监听,当节点被修改时,该客户端会收到一个回调。之前版本是在path 后面加一个watch实现:get path watch 。
stat [-w] path //查看节点元信息。
[-w] :查看节点并为节点添加一个监听,当节点被修改时,该客户端会收到一个回调。之前版本是在path 后面加一个watch实现:stat path watch 。
ls [-s] [-w] [-R] path //查看某一节点下的子节点。
[-s] : 查看某一节点下的子节点加当前节点的元信息,相当于之前版本的ls2命令。
[-w] :查看节点并为节点添加一个监听,当节点被修改时,该客户端会收到一个回调。之前版本是在path 后面加一个watch实现:ls path watch 。
[-R]: 返回当前节点路径,当前节点的子节点,当前节点的子节点的子节点(递归)。
ls2 path //返回子节点加当前节点的信息。 之前某个版本有,但是在3.6.1该命令被删除了。以参数形式集成到ls中。
history ://查看该客户端登录以来使用的最进执行的11个命令。
redo cmdno //再执行一次指定的历史命令。cmdno 是执行history命令时显示命令左边的index。
version :查看Zookeeper版本。
image.png
getAllChildrenNumber path :获取指定节点的所有子节点个数,包括子节点的子节点递归。getAllChildrenNumber / 代表获取Zookeeper所有节点的个数(/节点除外)。
getEphemerals path :获取该客户端会话创建的、指定节点下的所有临时子节点列表,包括持久子节点下的临时子节点递归。
修改命令
set [-s] [-v version] path data 修改节点数据,默认没有返回信息。
[-s] :返回修改后节点的元信息。
[-v version] :指定数据的版本,版本不符合时修改失败,类似关系型数据库的乐观锁。
path :修改节点路径。
data :修改的数据。
删除命令
delete [-v version] path //删除节点,删除的节点必须没有任何子节点,否则会删除失败。
[-v version] :指定数据的版本,版本不符合时删除失败,类似关系型数据库的乐观锁。
deleteall path // 递归节点。会递归删除该节点及其所有子节点。之前版本是rmr path。
其他命令
close 关闭客户端连接,把连接设置为关闭状态,实质关闭Socket连接,关闭之后发送命令就会报错。
connect host:port 连接其他Zookeeper服务器。
printwatches on|off 是否开启watch机制,如果设置为off,则该客户端监听的节点事件都不会生效、默认on。
removewatches path 删除在某节点上设置的监听。
sync path //把当前Zookeeper服务器的指定节点同步到主从集群中的其他Zookeeper服务器上。