etcd 是 CoreOS 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于 Go 语言实现,内部采用 raft 协议作为一致性算法。etcd目前默认使用 2379 端口提供 HTTP API 服务。

安装

进入官网: https://github.com/coreos/etcd/releases/

下载相应的版本,例如我下载的是etcd-v3.3.2-linux-amd64.tar.gz,然后解压。

进入目录启动etcd

cd etcd-v3.3.2-linux-amd64
./etcd

在实际使用时还需要把etcd的路径加入到PATH中,这样在其它的目录下都可以直接启动etcd。这种方法只是暂时设置环境变量,要永久设置可以参考修改/etc/profile文件或.bashrc文件。

ETCD=/home/suraer/Downloads/etcd-v3.3.2-linux-amd64
export ETCD
PATH=$PATH:$ETCD

设置完上述过程后在其它目录下只要执行etcd命令就可以启动etcd,后面有关etcd的操作都需要在启动etcd的情况下完成。

在etc的同级目录下有个可执行文件etcdctl,这个是etcd的一个工具,有关etcdctl的使用可以参考相关教程。

etcd API

etcd提供了许多API来操作数据,这里介绍几个常见的API来说明。

创建数据

// 键/message的值为"Hello word"
curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world"

获取数据

// 获取/message的值
curl http://127.0.0.1:2379/v2/keys/message

修改数据

curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello etcd"

删除数据

curl http://127.0.0.1:2379/v2/keys/message -XDELETE

设置键的存活时间

// 5秒后/foo将被销除
curl http://127.0.0.1:2379/v2/keys/foo -XPUT -d value=bar -d ttl=5

更多API参考官网: https://coreos.com/etcd/docs/latest/v2/api.html

Python-etcd

首先安装etcd包

pip install python-etcd

创建client对象

注意,创建client的端口一定要和etcd启动的端口一致,不然会报错。

client = etcd.Client(host='127.0.0.1', port=2379)

设置值

client.write('/nodes/n1', 1)

获取值

print(client.read('/nodes/n1').value)

删除值

client.delete('/nodes/n1')

详细内容参考官网: http://python-etcd.readthedocs.io/en/latest/

Etcd的基本使用的更多相关文章

  1. 一次基于etcd的分布式锁自动延时失败问题的排查

    今天在测试基于etcd的分布式锁过程中,在测试获取锁后,释放之前超出TTL时长的情况下自动延长TTL这部分功能,在延长指定key的TTL时总是返回404错误信息,在对目标KEY更新TTL时目标KEY已 ...

  2. etcd:用于服务发现的键值存储系统

    etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理 ...

  3. Centos7下Etcd集群搭建

    一.简介 "A highly-available key value store for shared configuration and service discovery." ...

  4. 通过docker-machine和etcd部署docker swarm集群

    本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...

  5. etcd第三集

    简单说下golang的etcd接口例子.etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以... v2: https://github.com/coreos ...

  6. etcd第二集

    参考文章:https://github.com/coreos/etcd/blob/master/Documentation/v2/api.mdhttp://www.cnblogs.com/zhengr ...

  7. etcd第一集

    网站:https://github.com/coreos/etcd 一些观点:https://yq.aliyun.com/articles/11035 1.etcd是键值存储仓库,配置共享和服务发现2 ...

  8. etcd命令说明 etcd Version: 3.0.15

    etcd Version: 3.0.15Git SHA: fc00305Go Version: go1.6.3Go OS/Arch: linux/amd64 https://github.com/co ...

  9. etcd api 接口

    etcd api接口 基本操作api: https://github.com/coreos/etcd/blob/6acb3d67fbe131b3b2d5d010e00ec80182be4628/Doc ...

  10. Key/Value存储系统etcd的特性

    etcd 是一个高可用的Key/Value存储系统,和其他KV存储系统不同的是,它的灵感来自于 ZooKeeper 和 Doozer,主要用于分享配置和服务发现.利用 etcd 的特性,应用程序可以在 ...

随机推荐

  1. stm32寄存器版学习笔记03 外部中断

    stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干 ...

  2. My Test about Mat

    一.创建Mat >Mat a = cv::Mat(2,2,CV_32S,1); output:  [1,1; 1,1] >Mat a = cv::Mat(2,2,CV_32SC3,1); ...

  3. oracle之 db file sequential read等待事件优化思想

    为什么db file sequential read事件在full table scan操作中显现,为什么在多块读中为什么会有单块读存在 ? extent的大小 :当扩展区中的最后一组块仅是1个块,o ...

  4. python运算符一些注意项

    python运算符一些注意项 '/'浮点除,和'//'整除 单个'/'是浮点除,两个除号'//'是整除 整除也适用于浮点数.但是,用整除计算浮点除的结果只是在整除的结果上浮点化,比如3.6//2.1, ...

  5. Linux软连接和硬链接(转)

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...

  6. java少包汇总

    1.在下载使用javax.mail的jar包时候,注意: 有的jar没有包含sun的实现,只包含了api,这类jar名称通常为javax.mail-api-x.x.x.jar,在使用smtp协议发邮件 ...

  7. Hadoop的简单序列化框架

    Hadoop提供了一个加单的序列化框架API,用于集成各种序列化实现.该框架由Serialization实现. 其中Serialization是一个接口,使用抽象工厂的设计模式,提供了一系列和序列化相 ...

  8. Linux下使用locale命令设置语言环境

    locale命令设置语言环境 在Linux中通过locale来设置程序运行的不同语言环境,locale由 ANSI C提供支持.locale的命名规则为_.,如zh_CN.GBK,zh代表中文, CN ...

  9. 带ssl的websocket例子

    还是在那个websocket_demo的例子 rebar-creator create-app websocket_demo tree一下看看大概目录 ├── cert │   ├── cowboy- ...

  10. spring面试资料

    *  Spring的优点有什么?   1.  Spring是分层的架构,你可以选择使用你需要的层而不用管不需要的部分   2.  Spring是POJO编程,POJO编程使得可持续构建和可测试能力提高 ...