当前位置: 首页 > news >正文

【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

相关文章:

  • 数据结构-顺序表
  • 东方财富股吧发帖与评论爬虫
  • 基于腾讯云TI-ONE 训练平台快速部署和体验 DeepSeek 系列模型
  • 「AI学习笔记」机器学习与深度学习的区别:从技术到产品的深度解析(四)...
  • 如何高效利用 AI 工具提升开发效率?
  • 机器学习PCA和LDA
  • du-磁盘占用管理
  • 基于Python实现的缓存淘汰替换策略算法,该算法将缓存分区
  • MongoDB 架构设计:深入解析核心组件与工作原理
  • 二分搜索法、二分查找法【C/C ++】
  • 数据结构:最小生成树
  • FFmpeg源码:av_strlcpy函数分析
  • 探索 DeepSeek:AI 领域的璀璨新星
  • 深度学习实战道路裂缝缺陷识别
  • 计算四个锚点TOA定位中GDOP的详细步骤和MATLAB例程
  • PyTorch 源码学习:阅读经验 代码结构
  • Flink提交pyflink任务
  • pytest asyncio 支持插件 pytest-asyncio
  • 基于51单片机的的鸡笼补光和恒温系统的设计与实现(源程序+Protues仿真+电路图+元件清单+器件手册)
  • python opencv基础使用总结
  • 李铁案二审今日宣判
  • “光荣之城”2025上海红色文化季启动,红色主题市集亮相
  • 深入贯彻中央八项规定精神学习教育中央指导组培训会议召开
  • 北上广深还是小城之春?“五一”想好去哪玩了吗
  • 楼下电瓶车起火老夫妻逃生时被烧伤,消防解析躲火避烟注意事项
  • 5145篇报道中的上海车展:40年,什么变了?