首页 > 数据库 >[etcd]基本数据库操作

[etcd]基本数据库操作

时间:2023-01-31 09:44:55浏览次数:78  
标签:endpoints -- 数据库 etcd 租约 操作 ENDPS etcdctl testdir

前言

etcd数据库操作基本围绕着对键值和目录的CRUD操作,以及生命周期的管理。

之前在单节点部署了三实例集群,而etcdctl默认找的是127.0.0.1:2379,所以这里先声明一个临时全局变量

export ENDPS='http://192.168.0.41:12379,http://192.168.0.41:22379,http://192.168.0.41:32379'

键操作

增加和修改键值对

etcdctl --endpoints=${ENDPS} put /testdir/testkey1 "hello world"
etcdctl --endpoints=${ENDPS} put /testdir/testkey2 "hello world2"
etcdctl --endpoints=${ENDPS} put /testdir/testkey3 "hello world3"

删除键值对

# 删除指定键
etcdctl --endpoints=${ENDPS} del /testdir/testkey3
# 按范围删值.删除/testdir/testkey1 到 /testdir/testkey3 的键
etcdctl --endpoints=${ENDPS} del /testdir/testkey1 /testdir/testkey3
# 删除并返回被删除的键值对
etcdctl --endpoints=${ENDPS} del --prev-kv /testdir/testkey1
# 删除指定前缀的键
etcdctl --endpoints=${ENDPS} del --prefix /testdir

取值

etcdctl --endpoints=${ENDPS} get /testdir/testkey1
# 获取[testkey1, testkey3)之间的键值对
etcdctl --endpoints=${ENDPS} get /testdir/testkey1 /testdir/testkey3
# 根据键的前缀取值
etcdctl --endpoints=${ENDPS} get --prefix /testdir/testkey
# 根据键的前缀取值,限制结果只有2个
etcdctl --endpoints=${ENDPS} get --prefix /testdir/testkey --limit=2

# 添加 -w json 参数可以获取key的版本,新增的键版本为2
etcdctl --endpoints=${ENDPS} get --prefix -w=json /test
## 对一个键反复修改后,假设当前版本为7,想看历史的版本4的值
etcdctl --endpoints=${ENDPS} get --prefix --rev=4 /test

# 新增几个键
etcdctl put /test/k2 123
etcdctl put /test/k3 23
etcdctl put /test/k4 321
## 读取大于键k2值的键
etcdctl get --from-key /test/k2

watch历史改动(监测键值对的改动)

# 监测 /t/k1 键的变动,在另一个终端会话中修改该键进行测试
etcdctl watch /t/k1
# 监测 /t/k1 到 /t/k9 的变动
etcdctl watch /t/k1 /t/k9

压缩修订版本(删除历史版本)

# 删除版本5之前的数据
etcdctl compact 5

租约-lease

租约类似redis中的TTL,实现存活周期控制。在实际应用中,常用来保持服务的心跳,即服务在启动时获取租约,将租约与服务地址绑定,并写入etcd,为了维持心跳状态,服务会定时刷新租约。

一旦租约的TTL到期,租约就过期并且所有附带的键都将被删除。(租约过期后,新增键就不能附加到租约)

创建租约

# 创建一个TTL为300秒的租约,注意返回的随机字符串
etcdctl lease grant 300
# lease 694d83d9830fba26 granted with TTL(100s)

# 新增一个绑定到694d83d9830fba26租约的键
etcdctl put --lease=694d83d9830fba26 /t/k10 't-k10'

撤销租约

etcdctl lease revoke 694d83d9830fba26

刷新租约

# 如果租约已经过期,则不能再刷新
etcdctl lease keep-alive 694d83d9830fba26

查看租约

etcdctl lease timetolive 694d83d9830fba26
# 查看租约存活时间,以及哪些key使用了该租约
etcdctl lease timetolive --keys 694d83d9830fba26

标签:endpoints,--,数据库,etcd,租约,操作,ENDPS,etcdctl,testdir
From: https://www.cnblogs.com/XY-Heruo/p/17077882.html

相关文章

  • Python操作Mongodb
    客户端客户端连接$bin/mongo.exeMongoDBshellversionv3.6.13help打开帮助showdbs#查看当前有哪些库useblog#有就切换过去,没有就创建后切换过去。......
  • 14--git常用操作 | 青训营笔记
    这是我参与「第五届青训营」伴学笔记创作活动的第14天学习资料git使用简易指南(bootcss.com)Git-Book(git-scm.com)公司使用Gitlab管理项目实践指南git思维导......
  • 使用 Python 操作 Mongo 数据库
    1.简介MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,它支持的......
  • (补12月19)ORM查询优化、ORM事物操作、ORM常用字段参数、Ajax请求、Content-Type
    ORM查询优化、ORM事物操作、ORM常用字段参数、Ajax请求、Content-TypeQ查询进阶操作先产生一个对象q_obj=Q()修改默认对象q_obj.connector='or'添加查询条件,可......
  • 操作系统的运行机制和体系结构
    操作系统的运行机制和体系结构1、运行机制2、操作系统的内核内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分。实现操作系统内核功能的那些程序就是......
  • 17.1 SQL Server数据库邮件
    SQLServer数据库邮件目录SQLServer数据库邮件简介配置SQLServer数据库邮件使用数据库邮件发送邮件1)发送邮件示例2)发送带有查询结果的电子邮件简介数据库电子邮件可以......
  • 操作系统的发展与分类
    操作系统的发展与分类1、手工操作阶段2、批处理阶段单道批处理系统多道批处理系统(操作系统开始出现)3、分时操作系统4、实时操作系统5、其他的几种操作系......
  • git tag标签操作
    标签与分支的区别标签是当前分支上的一个标记,其实道理和commit的commit-sha1有些相似,其实就是给当前的版本做个标记,以便回退到此版本。如果使用commit-sha1,大家都记......
  • 温度传感器实现原理与操作方法(经典版)
    第一:数字温度传感器(DS18B20)DS18B20是一款常用的高精度的单总线数字温度测量芯片。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。温度传感器参数和特性:1、测温范围为-55℃......
  • k8s02 - 集群操作基础命令(持续补充)
    目录基础操作命令1、kubectl命令1.1自动补全2、containerd常用命令3、crictl基础操作命令1、kubectl命令1.1自动补全在k8s1.3版本之前,设置kubectl命令自动补全是......