Etcd的基本使用
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的基本使用的更多相关文章
- 一次基于etcd的分布式锁自动延时失败问题的排查
今天在测试基于etcd的分布式锁过程中,在测试获取锁后,释放之前超出TTL时长的情况下自动延长TTL这部分功能,在延长指定key的TTL时总是返回404错误信息,在对目标KEY更新TTL时目标KEY已 ...
- etcd:用于服务发现的键值存储系统
etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理 ...
- Centos7下Etcd集群搭建
一.简介 "A highly-available key value store for shared configuration and service discovery." ...
- 通过docker-machine和etcd部署docker swarm集群
本片文章介绍一下 使用docker-machine 搭建docker swarm 集群:docker swarm是docker 官方搭建的容器集群编排工具:容器编排,就是可以使你像使用一太机器一样来使 ...
- etcd第三集
简单说下golang的etcd接口例子.etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以... v2: https://github.com/coreos ...
- etcd第二集
参考文章:https://github.com/coreos/etcd/blob/master/Documentation/v2/api.mdhttp://www.cnblogs.com/zhengr ...
- etcd第一集
网站:https://github.com/coreos/etcd 一些观点:https://yq.aliyun.com/articles/11035 1.etcd是键值存储仓库,配置共享和服务发现2 ...
- 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 ...
- etcd api 接口
etcd api接口 基本操作api: https://github.com/coreos/etcd/blob/6acb3d67fbe131b3b2d5d010e00ec80182be4628/Doc ...
- Key/Value存储系统etcd的特性
etcd 是一个高可用的Key/Value存储系统,和其他KV存储系统不同的是,它的灵感来自于 ZooKeeper 和 Doozer,主要用于分享配置和服务发现.利用 etcd 的特性,应用程序可以在 ...
随机推荐
- spring自定义标签学习
看到几篇很全的自定义标签,从定义到使用,写的很好. 这里我也是在那里学习的,对学习spring源码也很有帮助. 贴出来与大家共享. http://sammor.iteye.com/blog/11009 ...
- test20190320
全连 \(n\leq 10^6\) ,保证答案在 \(long\ long\) 范围内. 比较浅显的 \(dp\ ?\) 记 \(f[i]\) 表示考虑前 \(i\) 个音符,其中第 \(i\) 个 ...
- POJ3696 The Windy's 【网络流】
#include<iostream> #include<vector> #include<cstring> #include<algorithm> #i ...
- 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中
NuGet 提供了工具类型的包支持,生成一个基于 .NET Core 的 dll 或者基于 .NET Framework 的 exe 之后,你几乎可以对项目做任何事情.但是,默认情况下,NuGet 不 ...
- Python Tkinter 学习历程 一
一丶一个简单的程序 from tkinter import * #引入所有类#查看tk版本#tkinter._test() root = Tk(); #对这个类进行实例化 w1 = Label(roo ...
- SpringMVC传递数据的流线图
流程含义解释:(1)HTTP请求到达web服务器,web服务器将其封装成一个httpServletRequest对象(2)springMVC框架截获这个httpServletRequest对象(3)s ...
- 关于json格式字符串解析并用mybatis存入数据库
园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
- 初学FPGA一些建议
数字电路: 这是大学里的基本课程 ,涵盖了一般数字电路的组合电路.时序电路.寄存器传输.储存器以及可编程逻辑电路(FPGA 就是其中一种),还有比较好的添加了计算机的指令集结构.处理器设计等计算机方面 ...
- Linux:WebServer(Apacge)
/ + 内容:表示在文本中搜索该内容: :q!:不保存直接退出: chown -R imooc:imooc /data:将 /data 文件夹的权限所有人该为用户 imooc: -R:采用递归的方 ...