如果需要使用v2 version api,启动etcd时候需要加入“ETCD_ENABLE_V2=true”参数,否则会报错“404 page not found”
获取etcd版本信息
# curl -L http://172.16.101.55:2379/version {"etcdserver":"3.4.1","etcdcluster":"3.4.0"}
获取etcd健康状态
# curl -L http://172.16.101.55:2379/health {"health":"true"}
新建key message值为“Hello world”
# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world" {"action":"set","node":{"key":"/message","value":"Hello world","modifiedIndex":18,"createdIndex":18}}
查看key
# curl http://127.0.0.1:2379/v2/keys/message {"action":"get","node":{"key":"/message","value":"Hello world","modifiedIndex":18,"createdIndex":18}}
删除key
# curl http://127.0.0.1:2379/v2/keys/message -XDELETE {"action":"delete","node":{"key":"/message","modifiedIndex":19,"createdIndex":18},"prevNode":{"key":"/message","value":"Hello world","modifiedIndex":18,"createdIndex":18}}
创建带有TTL的key
# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world" -d ttl=30 {"action":"set","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:08:10.674930705Z","ttl":30,"modifiedIndex":20,"createdIndex":20}}
# curl http://127.0.0.1:2379/v2/keys/message {"action":"get","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:08:10.674930705Z","ttl":2,"modifiedIndex":20,"createdIndex":20}}
取消key的TTL
# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world" -d ttl=30 {"action":"set","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:10:23.220573683Z","ttl":30,"modifiedIndex":22,"createdIndex":22}} # curl http://127.0.0.1:2379/v2/keys/message {"action":"get","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:10:23.220573683Z","ttl":20,"modifiedIndex":22,"createdIndex":22}} # curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world" -d ttl= -d prevExist=true {"action":"update","node":{"key":"/message","value":"Hello world","modifiedIndex":23,"createdIndex":22},"prevNode":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:10:23.220573683Z","ttl":16,"modifiedIndex":22,"createdIndex":22}} # curl http://127.0.0.1:2379/v2/keys/message {"action":"get","node":{"key":"/message","value":"Hello world","modifiedIndex":23,"createdIndex":22}}
重置key的TTL
# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world" -d ttl=30 {"action":"set","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:15:01.34698273Z","ttl":30,"modifiedIndex":25,"createdIndex":25}} # curl http://127.0.0.1:2379/v2/keys/message {"action":"get","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:15:01.34698273Z","ttl":16,"modifiedIndex":25,"createdIndex":25}} # curl http://127.0.0.1:2379/v2/keys/message -XPUT -d ttl=30 -d refresh=true -d prevExist=true {"action":"update","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:15:29.569276199Z","ttl":30,"modifiedIndex":26,"createdIndex":25},"prevNode":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:15:01.34698273Z","ttl":2,"modifiedIndex":25,"createdIndex":25}} # curl http://127.0.0.1:2379/v2/keys/message {"action":"get","node":{"key":"/message","value":"Hello world","expiration":"2019-09-29T08:15:29.569276199Z","ttl":27,"modifiedIndex":26,"createdIndex":25}}
一次性watch
开启一个终端
# curl http://127.0.0.1:2379/v2/keys/message?wait=true
重新打开二个终端,新建key
# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world" {"action":"set","node":{"key":"/message","value":"Hello world","modifiedIndex":28,"createdIndex":28}}
此时第一个终端显示如下
{"action":"set","node":{"key":"/message","value":"Hello world","modifiedIndex":28,"createdIndex":28}}
再此在第一个终端执行watch
在第二个终端更新key
# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Nice Day" {"action":"set","node":{"key":"/message","value":"Nice Day","modifiedIndex":29,"createdIndex":29},"prevNode":{"key":"/message","value":"Hello world","modifiedIndex":28,"createdIndex":28}}
第一个终端显示如下
{"action":"set","node":{"key":"/message","value":"Nice Day","modifiedIndex":29,"createdIndex":29},"prevNode":{"key":"/message","value":"Hello world","modifiedIndex":28,"createdIndex":28}}