博客 / 詳情

返回

【zookeeper 第三篇章】客户端操作

一、新增 create 命令

格式:create [-s] [-e] path data
説明:用於創建節點並賦值。

  • [-s] [-e]:-s 和 -e 都是可選的,-s 代表順序節點, -e 代表臨時節點,注意其中 -s 和 -e 可以同時使用的,並且臨時節點不能再創建子節點。
  • path: 指定要創建節點的路徑,比如 /test。
  • data: 要在此節點存儲的數據。

1、創建持久化節點並寫入數據,當前會話結束之後,數據依然保存下來

  [zk: localhost:2181(CONNECTED) 9] create /tsing "890"
  Created /tsing
  
  ## 查看節點
  [zk: localhost:2181(CONNECTED) 10] ls /
  [tsing, zookeeper]
  
  ## 獲取數據
  [zk: localhost:2181(CONNECTED) 11] get /tsing
  890

2、創建持久化有序節點,此時創建的節點名為指定節點名 + 自增序列號

  [zk: localhost:2181(CONNECTED) 13] create -s /a "aaaa"
  Created /a0000000022
  [zk: localhost:2181(CONNECTED) 14] create -s /a "aaaa"
  Created /a0000000023
  
  ## 查看節點
  [zk: localhost:2181(CONNECTED) 15] ls /
  [a0000000022, a0000000023, zookeeper]
  
  ## 查看節點數據
  [zk: localhost:2181(CONNECTED) 16] get /a0000000022
  aaaa

3、創建臨時節點,臨時節點會在會話過期後被刪除:

  [zk: localhost:2181(CONNECTED) 17] create -e /tmp "tmp"
  Created /tmp
  [zk: localhost:2181(CONNECTED) 18] ls /
  [tmp, zookeeper]
  [zk: localhost:2181(CONNECTED) 19] get /tmp
  tmp

4、創建臨時有序節點,臨時有序節點會在會話過期後被刪除【分佈式鎖】:

  [zk: localhost:2181(CONNECTED) 20] create -s -e /aa 'aaaa'
  Created /aa0000000025
  [zk: localhost:2181(CONNECTED) 21] create -s -e /bb 'bbbb'
  Created /bb0000000026
  
  ## 查看節點
  [zk: localhost:2181(CONNECTED) 22] ls /
  [aa0000000025, bb0000000026, zookeeper]

二、查看 ls 命令

格式:ls path
説明:用於查看某個路徑下的目錄列表。

  • path: 代表目錄。
  ## 查看根路徑下的目錄列表
  [zk: localhost:2181(CONNECTED) 23] ls /  
  [test0000000000, test0000000001, test0000000002, zookeeper]
  
  ## 查看test0000000000路徑下的目錄列表
  [zk: localhost:2181(CONNECTED) 26] ls /test0000000000
  []
  
  ## 查看當前目錄下以及子節點
  [zk: localhost:2181(CONNECTED) 54] ls -s -w -R /
  /
  /tsing
  /zookeeper
  /zookeeper/config
  /zookeeper/quota

三、修改 set 命令

格式:
set path data [version]
説明:用於查看某個路徑下的目錄列表。

  • path: 代表節點路徑。
  • data: 需要存儲的數據。
  • [version]:可選項,版本號(可用做樂觀鎖)

1、普通修改數據

  ## 查看節點
  [zk: localhost:2181(CONNECTED) 2] ls /
  [tsing, zookeeper]
  
  ## 查看節點下的數據
  [zk: localhost:2181(CONNECTED) 3] get /tsing
  890
  
  ## 修改/tsing下的數據
  [zk: localhost:2181(CONNECTED) 4] set /tsing "11111"
  
  ## 查看修改後的數據
  [zk: localhost:2181(CONNECTED) 5] get /tsing
  11111

四、刪除 delete 命令

格式:delete path [version]
説明:刪除節點。

  • path: 節點路徑。
  • [version]: 和set用法一樣。

1、普通刪除數據:

    ## 查看節點
    [zk: localhost:2181(CONNECTED) 17] ls /
    [a0000000022, a0000000023, tsing, woniu0000000018, woniu0000000019, zookeeper]
    
    ## 刪除節點
    [zk: localhost:2181(CONNECTED) 18] delete /woniu0000000019

    ## 查看刪除後剩餘的數據
    [zk: localhost:2181(CONNECTED) 19] ls /
    [a0000000022, a0000000023, tsing, woniu0000000018, zookeeper]

2、如果有子節點,直接使用 delete 刪除會失敗:

    deleteall path [-b batch size]

五、查看節點數據 get 命令

格式:get [-s] [-w] path
説明: 獲取節點數據。

  • path: 代表路徑。

    ## 查看節點列表
    [zk: localhost:2181(CONNECTED) 50] ls /
    [tsing, zookeeper]
    
    ## 查看節點數據
    [zk: localhost:2181(CONNECTED) 51] get /tsing
    12345

六、查看節點狀態 stat 命令

格式:stat path [watch]
説明: 獲取節點數據。

  • path: 代表路徑。
  • [watch]: 對節點進行事件監聽。
  [zk: localhost:2181(CONNECTED) 56] stat /tsing
  cZxid = 0x36
  ctime = Tue Feb 02 15:06:37 GMT+08:00 2021
  mZxid = 0x36
  mtime = Tue Feb 02 15:06:37 GMT+08:00 2021
  pZxid = 0x36
  cversion = 0
  dataVersion = 0
  aclVersion = 0
  ephemeralOwner = 0x0
  dataLength = 5
  numChildren = 0
  • 説明:
節點名稱 描述
cZxid 創建znode更改的事務ID
mZxid 最後修改znode更改的事務ID
pZxid 用於添加或刪除子節點的znode更改的事務ID
ctime 表示從1970-01-01T00:00:00Z開始以毫秒為單位的znode創建時間
mtime 表示從1970-01-01T00:00:00Z開始以毫秒為單位的znode最近修改時間
dataVersion 表示對該znode的數據所做的更改次數
cversion 表示對此znode的子節點進行的更改次數
aclVersion 對此znode的ACL進行更改的次數
ephemeralOwner 如果znode是ephemeral類型節點,則這是znode所有者的 session ID。 如果znode不是ephemeral節點,則該字段設置為零
dataLength 這是znode數據字段的長度
numChildren 子節點的數量
user avatar chazhoudeqingchun 頭像 yadong_zhang 頭像 huzilachadedanche 頭像 mo_or 頭像 redorblack 頭像 saoming_zhang 頭像 jianhuan 頭像 yaha_5f66c6f02983e 頭像 jianghushinian 頭像 shenlan_5f8fa163e8542 頭像 mghio 頭像 u_16213680 頭像
21 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.