etcdctl常用命令:
etcdctl 支持的命令大体上分为数据库操作和非数据库操作两类,其中数据库的操作命令是最常用的命令 。
数据库操作
数据库操作基本围绕着对键值和目录的 CRUD 操作(即增删改查),及其对应的生命周期管理。我们上手这些操作其实很方便,因为这些操作是符合 REST 风格的一套 API 操作。
键操作
键操作包括最常用的增删改查操作,包括 PUT、GET、DELETE 等命令。
- PUT 设置或者更新某个键的值
- GET 命令还提供了根据指定的键(key),获取其对应的十六进制格式值,即以十六进制格式返回
- GET 范围内的值
可以看到,上述操作获取了大于等于 /test/foo1,且小于 /test/foo3 的键值对。foo3 不在范围之内,因为范围是半开区间 [foo1, foo3),不包含 foo3。
- 获取某个前缀的所有键值对,通过 --prefix 可以指定前缀 。
- 当前缀获取的结果过多时,还可以通过 --limit=2 限制获取的数量
- 读取大于等于键 b 的 byte 值的键的命令
etcdctl get --from-key b
- DELETE 删除一个键或者特定范围的键
etcdctl del foo
删除从 foo 到 foo9 范围的键的命令:etcdctl del foo foo9
删除键 zoo 并返回被删除的键值对的命令:etcdctl del --prev-kv zoo
- watch 键值对的改动
watch 监测一个键值的变化,一旦键值发生更新,就会输出最新的值并退出。
- lease(租约)
lease 意为租约,类似于 Redis 中的 TTL(Time To Live)。etcd 中的键值对可以绑定到租约上,实现存活周期控制。在实际应用中,常用来实现服务的心跳,即服务在启动时获取租约,将租约与服务地址绑定,并写入 etcd 服务器,为了保持心跳状态,服务会定时刷新租约。
应用客户端可以为 etcd 集群里面的键授予租约。当键被附加到租约时,它的存活时间被绑定到租约的存活时间,而租约的存活时间相应的被 TTL 管理。在授予租约时,每个租约的最小 TTL 值由应用客户端指定。一旦租约的 TTL 到期,租约就会过期并且所有附带的键都将被删除。