欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【etcd】etcd_APIs 简单KV、watch、lease、txn命令

【etcd】etcd_APIs 简单KV、watch、lease、txn命令

2025/2/22 2:25:20 来源:https://blog.csdn.net/m0_74282926/article/details/145670476  浏览:    关键词:【etcd】etcd_APIs 简单KV、watch、lease、txn命令

etcd API 概览

etcd API 主要分为以下几类:

API作用
KV处理键值对的存取(PutGetDelete
Watch监听 etcd 中键值的变化
Lease通过租约(Lease)设置数据的过期时间
Txn(事务)事务操作,支持多个操作的原子执行
Auth用户权限管理(添加用户、角色、授权等)
Cluster管理 etcd 集群节点
Maintenance维护 etcd(查看状态、快照、清理数据等)
Lock分布式锁

etcd 中,kv(键值操作)、watch(监听)、lease(租约)和 txn(事务)是核心功能。以下是这些功能的 etcd 原生命令 的详细讲解,包括命令的用法和示例。


1. KV(键值操作)

1.1 设置键值对 (put)

用于设置或更新键值对。

命令格式
etcdctl put <key> <value> [选项]
示例
etcdctl put /config/database/host localhost
  • 设置键 /config/database/host 的值为 localhost
常用选项
  • --lease:为键绑定租约。
    etcdctl put /config/database/host localhost --lease=1234abcd
    

1.2 获取键值对 (get)

用于获取键的值。

命令格式
etcdctl get <key> [选项]
示例
etcdctl get /config/database/host
  • 获取键 /config/database/host 的值。
常用选项
  • --prefix:获取指定前缀的所有键。
    etcdctl get /config/ --prefix
    
  • --limit:限制返回的键值对数量。
    etcdctl get /config/ --prefix --limit=2
    

1.3 删除键值对 (del)

用于删除键值对。

命令格式
etcdctl del <key> [选项]
示例
etcdctl del /config/database/host
  • 删除键 /config/database/host
常用选项
  • --prefix:删除指定前缀的所有键。
    etcdctl del /config/ --prefix
    

2. Watch(监听)

2.1 监听键的变化 (watch)

用于监听键的变化。

命令格式
etcdctl watch <key> [选项]
示例
etcdctl watch /config/database/host
  • 监听键 /config/database/host 的变化。
常用选项
  • --prefix:监听指定前缀的所有键。
    etcdctl watch /config/ --prefix
    

3. Lease(租约)

3.1 创建租约 (lease grant)

用于创建一个租约。

命令格式
etcdctl lease grant <TTL>
示例
etcdctl lease grant 60
  • 创建一个 TTL 为 60 秒的租约。
输出
lease 1234abcd granted with TTL(60s)
  • 1234abcd 是租约 ID。

3.2 绑定键到租约 (put --lease)

将键绑定到租约。

示例
etcdctl put /config/database/host localhost --lease=1234abcd
  • 将键 /config/database/host 绑定到租约 1234abcd

3.3 续约 (lease keep-alive)

用于续约,防止租约过期。

命令格式
etcdctl lease keep-alive <lease_id>
示例
etcdctl lease keep-alive 1234abcd
  • 续约租约 1234abcd

3.4 撤销租约 (lease revoke)

用于撤销租约,绑定的键会被删除。

命令格式
etcdctl lease revoke <lease_id>
示例
etcdctl lease revoke 1234abcd
  • 撤销租约 1234abcd

4. Txn(事务)

4.1 执行事务 (txn)

用于执行事务操作。

命令格式
etcdctl txn [选项]
示例 也可以etcdctl txn -i 启动交互式命令行
etcdctl txn <<EOF
compare:value("/config/database/host") = "localhost"
success:put /config/database/host "127.0.0.1"
failure:put /config/database/host "unknown"
EOF
  • 如果 /config/database/host 的值是 localhost,则将其改为 127.0.0.1,否则改为 unknown

5. 综合示例

5.1 设置键值对并绑定租约

# 创建租约
etcdctl lease grant 60# 绑定键到租约
etcdctl put /config/database/host localhost --lease=1234abcd

5.2 监听键的变化

# 监听键
etcdctl watch /config/database/host

5.3 执行事务

# 事务操作
etcdctl txn <<EOF
compare:value("/config/database/host") = "localhost"
success:put /config/database/host "127.0.0.1"
failure:put /config/database/host "unknown"
EOF

6. 总结

功能命令用途示例
KVput设置键值对etcdctl put /key value
get获取键值对etcdctl get /key
del删除键值对etcdctl del /key
Watchwatch监听键的变化etcdctl watch /key
Leaselease grant创建租约etcdctl lease grant 60
put --lease绑定键到租约etcdctl put /key value --lease=1234abcd
lease keep-alive续约etcdctl lease keep-alive 1234abcd
lease revoke撤销租约etcdctl lease revoke 1234abcd
Txntxn执行事务etcdctl txn <事务条件>

https://github.com/0voice

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词