網(wǎng)站建設(shè)怎么尋找客戶經(jīng)典軟文案例50字
前言
etcd數(shù)據(jù)庫操作基本圍繞著對鍵值和目錄的CRUD操作,以及生命周期的管理。
之前在單節(jié)點(diǎn)部署了三實(shí)例集群,而etcdctl
默認(rèn)找的是127.0.0.1:2379
,所以這里先聲明一個臨時全局變量
export ENDPS='http://192.168.0.41:12379,http://192.168.0.41:22379,http://192.168.0.41:32379'
鍵操作
增加和修改鍵值對
etcdctl --endpoints=${ENDPS} put /testdir/testkey1 "hello world"
etcdctl --endpoints=${ENDPS} put /testdir/testkey2 "hello world2"
etcdctl --endpoints=${ENDPS} put /testdir/testkey3 "hello world3"
刪除鍵值對
# 刪除指定鍵
etcdctl --endpoints=${ENDPS} del /testdir/testkey3
# 按范圍刪值.刪除/testdir/testkey1 到 /testdir/testkey3 的鍵
etcdctl --endpoints=${ENDPS} del /testdir/testkey1 /testdir/testkey3
# 刪除并返回被刪除的鍵值對
etcdctl --endpoints=${ENDPS} del --prev-kv /testdir/testkey1
# 刪除指定前綴的鍵
etcdctl --endpoints=${ENDPS} del --prefix /testdir
取值
etcdctl --endpoints=${ENDPS} get /testdir/testkey1
# 獲取[testkey1, testkey3)之間的鍵值對
etcdctl --endpoints=${ENDPS} get /testdir/testkey1 /testdir/testkey3
# 根據(jù)鍵的前綴取值
etcdctl --endpoints=${ENDPS} get --prefix /testdir/testkey
# 根據(jù)鍵的前綴取值,限制結(jié)果只有2個
etcdctl --endpoints=${ENDPS} get --prefix /testdir/testkey --limit=2
# 添加 -w json 參數(shù)可以獲取key的版本,新增的鍵版本為2
etcdctl --endpoints=${ENDPS} get --prefix -w=json /test
## 對一個鍵反復(fù)修改后,假設(shè)當(dāng)前版本為7,想看歷史的版本4的值
etcdctl --endpoints=${ENDPS} get --prefix --rev=4 /test
# 新增幾個鍵
etcdctl put /test/k2 123
etcdctl put /test/k3 23
etcdctl put /test/k4 321
## 讀取大于鍵k2值的鍵
etcdctl get --from-key /test/k2
watch歷史改動(監(jiān)測鍵值對的改動)
# 監(jiān)測 /t/k1 鍵的變動,在另一個終端會話中修改該鍵進(jìn)行測試
etcdctl watch /t/k1
# 監(jiān)測 /t/k1 到 /t/k9 的變動
etcdctl watch /t/k1 /t/k9
壓縮修訂版本(刪除歷史版本)
# 刪除版本5之前的數(shù)據(jù)
etcdctl compact 5
租約-lease
租約類似redis中的TTL
,實(shí)現(xiàn)存活周期控制。在實(shí)際應(yīng)用中,常用來保持服務(wù)的心跳,即服務(wù)在啟動時獲取租約,將租約與服務(wù)地址綁定,并寫入etcd,為了維持心跳狀態(tài),服務(wù)會定時刷新租約。
一旦租約的TTL到期,租約就過期并且所有附帶的鍵都將被刪除。(租約過期后,新增鍵就不能附加到租約)
創(chuàng)建租約
# 創(chuàng)建一個TTL為300秒的租約,注意返回的隨機(jī)字符串
etcdctl lease grant 300
# lease 694d83d9830fba26 granted with TTL(100s)
# 新增一個綁定到694d83d9830fba26租約的鍵
etcdctl put --lease=694d83d9830fba26 /t/k10 't-k10'
撤銷租約
etcdctl lease revoke 694d83d9830fba26
刷新租約
# 如果租約已經(jīng)過期,則不能再刷新
etcdctl lease keep-alive 694d83d9830fba26
查看租約
etcdctl lease timetolive 694d83d9830fba26
# 查看租約存活時間,以及哪些key使用了該租約
etcdctl lease timetolive --keys 694d83d9830fba26