赞
踩
zookeeper的数据节点可以视为是树状结构,树中的各个节点被称之为znode,一个znode可以拥有多个节点,使用节点的路径来定位某个znode。
znode兼具文件和目录两种身份,既能像文件一样维护着数据、元信息、ACL、时间戳等数据,又可以像目录已经作为路径的标识的一部分。
zookeeper有两种节点类型,节点类型在创建的时候即被确定,并且不能修改。
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
两个重要的参数 -s 和 -e。
所以zookeeper的节点分为,有序的持久化节点、无序的持久化节点、有序的临时节点、无序的临时节点。
有序节点会在节点名称后面追加一个序号。
set [-s] [-v version] path data
每次修改数据之后,当前节点的数据版本号dataVersion会自增1。
修改节点的值的时候,可以带上版本号,只有版本号与当前节点的数据版本号一致的时候才能修改成功。相当于乐观锁的机制,在多线程操作数据的情况下可以防止出现ABA问题。
delete [-v version] path
可以加上版本号进行删除。
当删除的节点下存在子节点的时候,删除当前节点将会失败。需要使用deleteall删除,3.7版本之前是rmr命令。
get [-s] [-w] path
stat [-w] path
stat只返回节点的信息,不返回节点的数据。
节点信息的改变:
ls [-s] [-w] [-R] path
使用如下:
查询某个节点下的子节点,但是不会返回孙子节点。
-s参数返回子节点的信息(旧版本使用ls2命令):
-R参数返回当前节点以及其下所有节点的列表,包括当前节点本身:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。