python操作etcd常用方法

目前的工作中会经常用到etcd,使用etcdctl命令有时感觉不是很方便的处理后续数据,所以记录下使用python操作etcd的一些常用方法

使用python操作etcd获取单个key会返回data和meta两个值,如果是获取列表需要循环取出,取出的值为bytes类型,需要使用decode()进行转换

下面我们来介绍下一些常见的操作

1.put命令插入和更新key

import etcd3
etcd = etcd3.client('127.0.0.1', 2379, user=root, password=admin123)
etcd.put("/test", "test data !")

etcd的put命令可以用来插入新key和更新已有key,操作主要使用put方法,

put方法中还可以使用prev_kv参数获取改变之前的上一个键值对

ret = etcd.put("/test", "test data2 !")
print(ret.prev_kv.value.decode())

2.get方法获取键值

import etcd3
etcd = etcd3.client('127.0.0.1', 2379, user=root, password=admin123)
data, path = etcd.get('/test')
print(data.decode())
print(path.key.decode())

etcd的get方法用来获取可以键的键值

3.get_range方法获取键值范围和排序

import etcd3
etcd = etcd3.client('127.0.0.1', 2379, user=root, password=admin123)
for data, meta in etcd.get_range('/test-1', '/test-9', sort_order='ascend', sort_target='mod'):
    print(data.decode())
    print(meta.key.decode())

排序可以使用sort_order参数进行排序,有3种支持参数配置

descend:代表倒序
ascend: 代表正序
none: 即不排序。

sort_target适用于排序的的键值字段,有5中支持参数配置

key: 使用key的ascii来排序
version: 使用key的版本来排序,没有修改过的key版本为0,修改过一次加1
create: key创建的时间排序
mod: key最后一次修改的时间排序
value: 根据键值来排序

另外还有一些其他参数,可以自行去查看:https://doczhcn.gitbook.io/etcd/index-1/kv_service/range

4.get_prefix方法获取键范围内的集合

import etcd3
etcd = etcd3.client('127.0.0.1', 2379, user=root, password=admin123)
for data, meta in etcd.get_prefix('/test/'):
    print(data.decode(),meta.key.decode())

这个方法在底层实际和get_range使用的是同一个方法


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/975.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。