一、新增 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 | 子節點的數量 |