Zookeeper数据模型基本操作

数据模型介绍

  • 树形结构
  • 每一个节点称为znode,可以有子节点,也可以有数据
  • 每个节点分为临时节点和永久节点,临时节点客户端断开会丢失
  • 每个zk节点都有各自的版本号
  • 每个节点数据发生变化,该节点的版本号会累加(乐观锁)
  • 删除/修改过时的节点,版本号不匹配则会报错
  • 每个zk节点存储数据不宜过大,几kb就好
  • 节点可以设置权限acl,通过权限来限制用户的访问

操作命令演示

# 查看某个路径下目录列表,watcher事件可以监听子节点
ls [path] watch

 显示的是根目录下的节点

# 查看目录更详细的信息
ls2 [path]
# 新版本
ls -s [path]
# 查看当前节点状态信息
stat [path] watch

 详细字段说明

# 创建节点id
cZxid = 0x0
# 创建节点时间 
ctime = Thu Jan 01 08:00:00 CST 1970
# 修改节点id
mZxid = 0x0
# 修改节点时间
mtime = Thu Jan 01 08:00:00 CST 1970
# 子节点id
pZxid = 0x3
# 子节点version
cversion = 1
# 当前节点数据版本号,变化累加1
dataVersion = 0
# 当前节点权限版本号,变化累加1
aclVersion = 0
# 判断是否临时节点,如果不是0x0就是临时节点
ephemeralOwner = 0x0
# 数据长度
dataLength = 0
# 子节点数量
numChildren = 1
# 获取节点数据和状态信息,watch对节点进行事件监听
get [path] watch

# 创建节点并赋值,s表示顺序节点(名字会有编号),e表示临时节点,path路径,data数据,acl权限,默认world全世界
create [-s][-e] [path] data acl

 临时节点服务器关闭会丢失,顺序节点名字带编号。

# 修改节点存储的数据,version表示版本号,查看详情里面的dataVersion(乐观锁)
set [path] data [version]
# 新版本要加 -v 做版本号控制
set [path] data -v [version]

version是为了拿来做乐观锁,防止数据修改被覆盖。 

 提示version No is not valid,表示版本号无效

# 删除节点
delete [path] [version]

 delete一样,如果不需要做版本控制,去除-v [version] 就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值