etcd入門之常用命令

1 cluster

# 查看版本
$ ./bin/etcdctl version
etcdctl version: 3.5.0
API version: 3.5

# 通過endpoints參數(shù)指定連接的遠(yuǎn)端etcd節(jié)點(diǎn)
$ ./bin/etcdctl --endpoints=http://127.0.0.1:2379 version
etcdctl version: 3.5.0
API version: 3.5

# 查看集群成員
$ ./bin/etcdctl member list
8e9e05c52164694d, started, etcd-cnlab0, http://localhost:2380, http://localhost:2379, false

# 查看集群狀態(tài)
$ ./bin/etcdctl endpoint status --cluster -w table
+-----------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|       ENDPOINT        |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+-----------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| http://localhost:2379 | 8e9e05c52164694d |   3.5.0 |   20 kB |      true |      false |         2 |          4 |                  4 |        |
+-----------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+

# 查看集群健康情況
$ ./bin/etcdctl endpoint health --cluster -w table
+-----------------------+--------+------------+-------+
|       ENDPOINT        | HEALTH |    TOOK    | ERROR |
+-----------------------+--------+------------+-------+
| http://localhost:2379 |   true | 2.059608ms |       |
+-----------------------+--------+------------+-------+

2 put

$ ./bin/etcdctl put /foo1 "hello world"
$ ./bin/etcdctl put /foo1 100
$ ./bin/etcdctl put /foo3 huhu

3 get

$ ./bin/etcdctl get /foo1
/foo1
hello world

# 只顯示值,不顯示key
$ ./bin/etcdctl get /foo1 --print-value-only
hello world

# 范圍查詢竿拆,左閉右開 [/foo1, /foo3)
$ ./bin/etcdctl get /foo1 /foo3 --print-value-only
hello world
100

# 范圍查詢宙拉,大于或等于指定key值
$ ./bin/etcdctl get --from-key /foo2 --print-value-only
100
huhu

# 前綴查詢
$ ./bin/etcdctl get --prefix /foo --print-value-only
hello world
100
huhu

# 限制返回的結(jié)果數(shù)量
$ ./bin/etcdctl get --prefix --limit=2 /foo --print-value-only
hello world
100

# 查詢key的詳細(xì)信息。etcd維護(hù)了一個(gè)全局遞增的revision值丙笋,每次修改某個(gè)key的值就會(huì)增加1. 從下面的信息可以看出谢澈,key /foo1的最新revision值是7,創(chuàng)建時(shí)的revision值是2御板,共有4個(gè)版本(表示寫入了4次)
$ ./bin/etcdctl get /foo1 -w=json
{"header":{"cluster_id":14841639068965178418,"member_id":10276657743932975437,"revision":7,"raft_term":3},"kvs":[{"key":"L2ZvbzE=","create_revision":2,"mod_revision":7,"version":4,"value":"Z29vZCBpZGVh"}],"count":1}

# 查看指定revison版本的值
$ ./bin/etcdctl get /foo1 --rev=2 --print-value-only
hello world

4 del

刪除命令與get基本相似

$ ./bin/etcdctl del /foo1
1

# 刪除范圍
$ ./bin/etcdctl del /foo1 /foo3

# 刪除范圍锥忿,大于或等于指定key值
$ ./bin/etcdctl del --from-key /foo1

# 根據(jù)前綴刪除
$ ./bin/etcdctl del --prefix /foo1


# 返回刪除前的值
$ ./bin/etcdctl del /foo1 --prev-kv
1
/foo1
hell

5 lease

# 創(chuàng)建租約,生命周期為120秒稳吮,租約id為694d7c20bfb1c716
$ $ ./bin/etcdctl lease grant 120
lease 694d7c20bfb1c716 granted with TTL(30s)

# 綁定租約
$ ./bin/etcdctl put /foo5 "hello world" --lease=694d82b0f0dfb037
OK

# 查看租約剩余的TTL
$ ./bin/etcdctl lease timetolive 694d82b0f0dfb037
lease 694d82b0f0dfb037 granted with TTL(120s), remaining(42s)

# 查看租約剩余的TTL缎谷,同時(shí)查看綁定的key
$ ./bin/etcdctl lease timetolive --keys 694d82b0f0dfb037
lease 694d82b0f0dfb037 granted with TTL(120s), remaining(32s), attached keys([/foo5])

# 持續(xù)續(xù)租,直到CTRL + C退出續(xù)租
$ ./bin/etcdctl lease keep-alive 694d82b0f0dfb037
lease 694d82b0f0dfb037 keepalived with TTL(120)
lease 694d82b0f0dfb037 keepalived with TTL(120)


# 撤銷租約
$ ./bin/etcdctl revoke 694d7c20bfb1c716

# 租約到期后灶似,綁定的key被刪除
$ ./bin/etcdctl get /foo5

6 watch

在一個(gè)窗口監(jiān)聽key /foo10

$ ./bin/etcdctl watch /foo10

在另一個(gè)窗口修改key /foo10的值

-bash-4.1$ ./bin/etcdctl put /foo10 30
OK
-bash-4.1$ ./bin/etcdctl put /foo10 "hello world"
OK
-bash-4.1$ ./bin/etcdctl del /foo10
1
-bash-4.1$ ./bin/etcdctl lease grant 30
lease 694d82b0f0dfb033 granted with TTL(30s)
-bash-4.1$ ./bin/etcdctl put /foo10 123 --lease=694d82b0f0dfb033
OK

可以觀察到監(jiān)聽窗口打印以下key值變化的過程

$ ./bin/etcdctl watch /foo10
PUT
/foo10
30
PUT
/foo10
hello world
DELETE
/foo10

PUT
/foo10
123

# 由租約到期刪除key觸發(fā)
DELETE
/foo10

# 監(jiān)聽范圍
$ ./bin/etcdctl watch /foo1 /foo10

# 監(jiān)聽前綴
$ ./bin/etcdctl watch --prefix /foo
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瑞你,隨后出現(xiàn)的幾起案子酪惭,更是在濱河造成了極大的恐慌,老刑警劉巖者甲,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春感,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鲫懒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門嫩实,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窥岩,你說我怎么就攤上這事甲献。” “怎么了颂翼?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵晃洒,是天一觀的道長。 經(jīng)常有香客問我朦乏,道長球及,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任呻疹,我火速辦了婚禮吃引,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刽锤。我一直安慰自己际歼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布姑蓝。 她就那樣靜靜地躺著鹅心,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纺荧。 梳的紋絲不亂的頭發(fā)上旭愧,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音宙暇,去河邊找鬼输枯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛占贫,可吹牛的內(nèi)容都是我干的桃熄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼型奥,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼瞳收!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厢汹,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤螟深,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后烫葬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體界弧,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凡蜻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了垢箕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片划栓。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖条获,靈堂內(nèi)的尸體忽然破棺而出忠荞,到底是詐尸還是另有隱情,我是刑警寧澤月匣,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布钻洒,位于F島的核電站,受9級(jí)特大地震影響锄开,放射性物質(zhì)發(fā)生泄漏素标。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一萍悴、第九天 我趴在偏房一處隱蔽的房頂上張望头遭。 院中可真熱鬧,春花似錦癣诱、人聲如沸计维。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲫惶。三九已至,卻和暖如春实抡,著一層夾襖步出監(jiān)牢的瞬間欠母,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工吆寨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赏淌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓啄清,卻偏偏與公主長得像六水,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辣卒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 官方鏈接: etcd命令行 快速入門單機(jī)啟動(dòng)etcd本地集群?jiǎn)?dòng)使用goreman啟動(dòng)本地三節(jié)點(diǎn)Procfileg...
    撈月亮的阿湯哥閱讀 1,852評(píng)論 0 2
  • 0 專輯概述 etcd 是云原生架構(gòu)中重要的基礎(chǔ)組件掷贾,由 CNCF 孵化托管。etcd 在微服務(wù)和 Kuberna...
    aoho閱讀 19,254評(píng)論 0 2
  • 引言 目前添寺,可實(shí)現(xiàn)分布式鎖的開源軟件還是比較多的胯盯,其中應(yīng)用最廣泛、大家最熟悉的應(yīng)該就是 ZooKeeper计露,此外還...
    愛情小傻蛋閱讀 8,273評(píng)論 1 19
  • 一、什么是ETCD etcd是CoreOS團(tuán)隊(duì)于2013年6月發(fā)起的開源項(xiàng)目,它的目標(biāo)是構(gòu)建一個(gè)高可用的分布式鍵值...
    宏勢(shì)閱讀 2,882評(píng)論 1 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理票罐,服務(wù)發(fā)現(xiàn)叉趣,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139