etcd v2/v3 最全常用命令差异
在分布式系统中,ETCD作为一个高性能、可靠且安全的键值存储系统,广泛应用于配置共享、服务发现、分布式锁等多个领域。 下面整理了v2/v3版本中命令的使用差异。
1. 查看集群状态
使用etcdctl member list
命令可以查看ETCD集群的成员状态。这将列出集群中所有节点的信息,包括节点ID、名称、客户端URLs和peerURLs等。
#export ETCDCTL_API=3
#etcdctl member list
8e9e05c52164694d, started, default, http://localhost:2380, http://127.0.0.1:2379
#export ETCDCTL_API=2
#etcdctl member list
8e9e05c52164694d: name=default peerURLs=http://localhost:2380 clientURLs=http://127.0.0.1:2379 isLeader=true
2. 查看目录列表
使用etcdctl 查看etcd 整个目录树结构
#export ETCDCTL_API=3
#etcdctl get / --prefix=true --keys-only
#export ETCDCTL_API=2
#etcdctl ls /
3. 获取和设置键值对
使用etcdctl get
命令可以获取ETCD集群中的键值对。如果键不存在,则返回一个空值。使用etcdctl put
命令可以设置或更新键值对。
#export ETCDCTL_API=3
# 获取键值对
#etcdctl get <key>
# 设置键值对
#etcdctl put <key> <value>
#export ETCDCTL_API=2
# 获取键值对
#etcdctl get <key>
# 设置键值对
#etcdctl set <key> <value>
4. 删除键值对和目录
使用etcdctl del
命令可以删除ETCD集群中的键值对。
# 删除键值对
#export ETCDCTL_API=2
#etcdctl rm <key>
#etcdctl rmdir <directory>
#export ETCDCTL_API=3
#etcdctl del <key>
#etcdctl del <directory>
5. 设置TTL(Time-To-Live)
使用etcdctl put
命令可以设置键的TTL,即键在多长时间后自动删除。TTL以秒为单位。
# 设置键值对过期时间
#export ETCDCTL_API=2
#etcdctl set <key> <value> --ttl <seconds>
#export ETCDCTL_API=3
#etcdctl lease grant 2000
lease 694d91981cca2274 granted with TTL(2000s)
# etcdctl put --lease=694d91981cca2274 <key> <value>
6. 监视键值对变化
使用etcdctl watch
命令可以监视ETCD集群中键值对的变化。当指定键的值发生变化时,该命令将输出新的键值对。
#export ETCDCTL_API=2
#etcdctl watch <key>
#export ETCDCTL_API=3
#etcdctl watch <key>