快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → etcdctl基本使用

etcdctl基本使用

时间:2022-10-24 11:01:18人气:作者:快盘下载我要评论

写入键 put

命令;etcdctl put [options] <key> <value> (<value> can also be given from stdin) [flags]

options

  • --lease <lease ID> 设置 key 所使用的 lease ID
  • --prev-kv 返回该 key 修改之前的值
  • --ignore-lease 使用当前的 lease 更新 key
  • --ignore-value 使用当前的 value 更新 key

事例 1

$ etcdctl put k1 a
OK

$ etcdctl put k1 b --prev-kv
OK
k1
a

$ etcdctl put k1 --ignore-value
OK

$ etcdctl get k1
k1
b

$ etcdctl lease grant 1000
lease 694d8403baac463d granted with TTL(1000s)

$ etcdctl put k1 c --lease 694d8403baac463d 
OK

$ etcdctl put k1 d --ignore-lease
OK

事例 2

$ echo hello | etcdctl put k1

$ etcdctl get k1
k1
hello

注意

  • value 中包含转义字符时;可用双引号或单引号;引用输入内容避免转义
  • value 中包含 - 时;避免被翻译为 flag;可以在 key 或 value 前加上 --

事例 3

$ etcdctl put k1 hello
world
OK

$ etcdctl get k1
k1
hellonworld

$ etcdctl put k1 -test
Error: unknown shorthand flag: ;t; in -test

事例 4

$ etcdctl put k1 ;hello
world;
OK

$ etcdctl get k1
k1
hello
world

$ etcdctl put -- k1 -testA
OK

$ etcdctl get k1
k1
-testA

$ etcdctl put k1 -- -testB
OK

$ etcdctl get k1
k1
-testB

获取键 get

命令;etcdctl get [options] <key> [range_end] [flags]

options

  • --from-key 按照字节序;筛选大于或等于的 key
  • --prefix 筛选以该前缀的 key
  • --keys-only 只输出 key
  • --print-value-only 只输出 value
  • --limit <max_num> 限制输出条数;当为 0 时不作限制
  • --sort-by <;create;|;key;|;modify;|;value;|;version;> 按照创建时间、键、修改时间、值或版本号排序
  • --order <;ascend;|;descend;> 按照升序或降序排列
  • --rev <version> 指定 key 的版本。etcd 对 key 的写操作;会更新全局修订版本;通过指定版本可以读取旧的数据
  • --count-only
  • --consistency <;l;|;s;> 一致性;默认是 Linearizable;可以设置为 Serializable

事例 1

$ etcdctl get k1        
k1
a

$ etcdctl get k1 k4
k1
a
k2
b
k3
c

$ etcdctl get k3 --from-key
k3
c
k4
d

$ etcdctl get k --prefix   
k1
a
k2
b
k3
c
k4
d

$ etcdctl get k1 --keys-only
k1

$etcdctl get k1 --print-value-only 
a

事例 2

$ etcdctl get k --prefix --sort-by modify --order descend
k2
b
k4
d
k1
a
k3
c

$ etcdctl get k --prefix --sort-by modify --order descend --limit 2
k2
b
k4
d

事例 3

# 假设版本信息如下
# f1 = a, rev = 1
# f2 = b, rev = 2
# f1 = c, rev = 3
# f2 = d, rev = 4

$ etcdctl get f --prefix --rev=1
f1
a

$ etcdctl get f --prefix --rev=2
f1
a
f2
b

$ etcdctl get f --prefix --rev=3
f1
c
f2
b

$ etcdctl get f --prefix --rev=4
f1
c
f2
d

删除键 del

命令;etcdctl del [options] <key> [range_end] [flags]

options

  • --from-key 按照字节序;筛选大于或等于的 key
  • --prefix 筛选所有以该前缀 的 key
  • --prev-kv 返回该 key 修改之前的值
  • --range 该选项避免删除延迟;默认延迟 2s;

事例 1

# 假设已有 k1 = a, k2 = b, k3 = c, k4 = d, k5 = e

$ etcdctl del k1
1

$ etcdctl del k5 --prev-kv
1
k2
b

$ etcdctl del k2 k5
Warning: Keys between ;k2; and ;k5; will be deleted. Please interrupt the command within next 2 seconds to cancel. You can provide ;--range; flag to avoid the delay.
3

事例 2

# 假设已有 k1 = a, k2 = b, k3 = c, k4 = d, k5 = e

$ etcdctl del k2 k5 --range
3

$ etcdctl del k --prefix
2

事例 3

$ etcdctl del k2 --from-key
4

观察键 watch

命令;etcdctl watch [options] [key | prefix] [range_end] [--] [exec-command arg1 arg2 ...] [flags]

options

  • --prefix
  • --prev-kv
  • --interactive 开启交互式
  • --rev <version> 指定 key 的版本;输出当前版本开始的所有状态变更
  • --progress-notify

事例 1

$ etcdctl watch k1 k9
# 另一个终端;etcdctl put k1 abcdef
PUT
k1
abcdef
# 另一个终端;etcdctl del k1
DELETE
k1

$ etcdctl watch --prefix k --prev-kv
# 另一个终端;etcdctl put k1 abcdef
PUT
k1
abcdef
# 另一个终端;etcdctl del k1
DELETE
k1
a
k1

事例 2

$ etcdctl watch k1 k9
watch a
# 另一个终端;etcdctl put a 1
PUT
a
1
watch b
# 另一个终端;etcdctl put b 2
PUT
b
2

注意;状态发生变更后;执行 [--] [exec-command arg1 arg2 ...] 指定的命令

事例 3

$ etcdctl watch a -- echo hello a
# 另一个终端;etcdctl put a 1
PUT
a
1
hello a

事例 4

# 假设版本信息如下
# f1 = a, rev = 1
# f2 = b, rev = 2
# f1 = c, rev = 3
# f2 = d, rev = 4

$ etcdctl watch f1 --rev 2
PUT
f1
c

压缩版本 compact

命令;etcdctl compaction [options] <reVision> [flags]

丢弃给定 revision 之前的所有 etcd 事件历史。由于 etcd 使用多版本并发控制模型;它会以事件历史的形式保存所有的 key 更新记录。当给定 revision 之前的事件历史不再需要时候;此时可以对 key 进行压缩以释放 etcd 后端数据存储空间

options;--physical 等待物理移除所有旧的版本

事例

$ etcdctl compact 5
compacted revision 110

$ etcdctl get k1 --rev 3
{;level;:;warn;,;ts;:;2022-10-23T22:20:28.174;0800;,;logger;:;etcd-client;,;caller;:;v3/retry_interceptor.go:64;,;msg;:;retrying of unary invoker failed;,;target;:;etcd-endpoints://0x140000d81e0/127.0.0.1:2379;,;method;:;/etcdserverpb.KV/Range;,;attempt;:0,;error;:;rpc error: code = OutOfRange desc = etcdserver: mvcc: required revision has been compacted;}
Error: etcdserver: mvcc: required revision has been compacted

租约 lease

键可以绑定一个租约;当租约过期或被废弃后;该键也会失效

命令

  • etcdctl lease grant <ttl> [flags] 创建租约
  • etcdctl lease list [flags] 返回所有未过时或未被废弃的租约
  • etcdctl lease revoke <leaseID> [flags] 废弃租约
  • etcdctl lease keep-alive [--once] <leaseID> [flags] 周期性续约;--once 只续约一次
  • etcdctl lease timetolive <leaseID> [--keys] [flags] 获取租约信息;--keys 附带关联的键信息

事例 1

$ etcdctl lease grant 1000
lease 694d84055233d604 granted with TTL(1000s)

$ etcdctl lease list
found 1 leases
694d84055233d604

$ etcdctl lease timetolive 694d84055233d604
lease 694d84055233d604 granted with TTL(1000s), remaining(948s)

$ etcdctl lease timetolive --keys
lease 694d84055233d604 granted with TTL(1000s), remaining(922s), attached keys([k1])

$ etcdctl put k1 a --lease 694d84055233d604

$ etcdctl lease revoke 694d84055233d604
lease 694d84055233d604 revoked

事例 2

$ etcdctl lease grant 10
lease 694d84055233d609 granted with TTL(10s)

$ etcdctl lease keep-alive --once
lease 694d84055233d609 keepalived with TTL(10)

$ etcdctl lease keep-alive 
lease 694d84055233d609 keepalived with TTL(10)
lease 694d84055233d609 keepalived with TTL(10)
lease 694d84055233d609 keepalived with TTL(10)
lease 694d84055233d609 keepalived with TTL(10)
lease 694d84055233d609 keepalived with TTL(10)
lease 694d84055233d609 keepalived with TTL(10)
...

相关文章

  • RabbitMQ-基本使用

    RabbitMQ-基本使用,在创建队列的时候可以设置队列的存活时间,当消息进⼊到队列并且在存活时间内没 有消费者消费,则此消息就会从当前队列被移除;应⽤程序通过读写出⼊队列的消息(针对应⽤程序的数据)来通信,⽽⽆需专⽤连接来。我们使⽤消息队列,消息队列和交换机可以通过管理系统完成创建,也可以在应⽤程序。在特定的业务场景中:⽤户注册成功之后,发送短息通知⽤户(A服务为⽤户注册,⼀个交换机绑定多个消息队列,每个消息队列有⼀个消费者监听。⼀个交换机绑定多个消息队列,每个消息队列都由⾃⼰唯⼀的。...
  • vue3-props属性基本使用梳理

    vue3-props属性基本使用梳理,vue3 props属性基本使用梳理...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。