首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Etcd-数据增删改查(CRUD)

Etcd-数据增删改查(CRUD)

作者头像
运维小路
发布2026-02-28 18:15:47
发布2026-02-28 18:15:47
470
举报
文章被收录于专栏:运维小路运维小路

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL

PostgreSQL

MongoDB

Redis

Etcd(本章节)

在介绍Etcd数据库的增删改查(CRUD)之前,我们需要先了解Etcd的两个API版本:V2和V3。

版本介绍

etcd 主要有v2v3两个核心 API 版本,是迭代升级的两代接口,设计理念和底层实现差异显著,v3 为目前主流生产使用版本。

etcd 从 3.4 版本 开始,将 etcdctl 的默认 API 版本正式从 v2 改为 v3;而在 etcd 3.0~3.3 版本中,etcdctl 仍默认使用 v2 API,需要手动指定才能用 v3。

v2和v3可以简单理解为两个独立的库,使用v2写入的数据和v3写入的数据相互隔离,两个存储区之间没有自动同步关联查询的机制。如果要让数据在两个世界都可用,必须用两个版本的客户端分别写入两次,或者使用官方迁移工具做一次性拷贝。

数据结构

我们前面在介绍ZooKeeper的时候,介绍他的是树形目录结构,而我们的今天的Etcd也是他一样,也是采用树形目录结构,所以的增删改查也基于这个树形目录。

增删改查

在开始操作前,必须设置API版本为3(否则会使用默认的v2 API,导致操作失败或数据错乱)

代码语言:javascript
复制
export ETCDCTL_API=3
# 或者在每次命令前显式指定
增/改 (Put)

put 命令是幂等的。如果键不存在则创建,存在则用新值覆盖旧值。

代码语言:javascript
复制
# 基本写入
etcdctl put /project/database/host "192.168.1.100"

# 带租约写入 (键在租约过期后自动删除)
LEASE_ID=$(etcdctl lease grant 60) # 创建60秒租约
etcdctl put /tmp/session_token "abc123" --lease=$LEASE_ID
查 (Get)
代码语言:javascript
复制
# 1. 精确获取
etcdctl get /project/database/host

# 2. 范围获取 (获取一个区间内的键,按字节序)
etcdctl get /project/database/a /project/database/z

# 3. 前缀获取 (最常用,模拟列出目录)
etcdctl get /project/database/ --prefix
# 输出示例:
# /project/database/host
# 192.168.1.100
# /project/database/port
# "3306"

# 4. 获取历史版本 (需要启用 --write-out=fields 查看详细信息或指定修订版本)
etcdctl get /project/database/host --rev=5 # 获取该键在修订版本5时的值

# 5. 只获取键名或数量
etcdctl get /project/database/ --prefix --keys-only
etcdctl get /project/database/ --prefix --count-only
删 (Del)
代码语言:javascript
复制
# 1. 精确删除
etcdctl del /project/database/host

# 2. 前缀删除 (模拟删除目录及其下所有内容)
etcdctl del /project/database/ --prefix

# 3. 删除并返回被删除的数据
etcdctl del /project/database/ --prefix --prev-kv
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB
    • 增/改 (Put)
    • 查 (Get)
    • 删 (Del)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档