当前位置: 首页 > news >正文

etcd基本数据库操作

前言

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
http://www.xdnf.cn/news/1040131.html

相关文章:

  • 基于Python学习《Head First设计模式》第十三章 现实世界中的模式
  • c++中vector的使用
  • 前端开发中,实现多线程
  • 轮转数组题解
  • App跨平台技术2025年深度解析:核心原理与最佳实践
  • C语言环形数组(循环队列)详解:原理、实现与应用
  • BeckHoff <--> Festo Cmmt AS驱动器 EtherCat通讯
  • 1.16 Cookie 和 Session
  • 多商户商城+直播电商系统融合开发方案:一套源码搞定双场景应用
  • 解决vue3标签中引用动态图片失效问题
  • Python无限弹窗
  • CSS Margin纵向重叠(Margin Collapse)问题详解
  • springAI 大模型应用开发
  • 操作系统多级存储模型
  • 【AS32系列MCU调试教程】调试工具:Eclipse调试工具栏与窗口的深入分析
  • 《高等数学》(同济大学·第7版)第五章第一节定积分的概念与性质
  • 【多线程初阶】详解线程池(上)
  • 探险之物资储备c++
  • 多项目状态如何集中监控与汇总
  • uni-app项目实战笔记12--创建分类列表完成页面跳转
  • 解决在微信小程序中view组件下的text和images设置了样式display: flex; align-items: center;对不齐
  • layui在首页添加弹窗和跳转页面
  • Leetcode 398. 随机数索引
  • 设计师灵感仓库!IconViewer 右键一键提取系统图标,PNG 透明背景素材随取随用
  • Lyapunov深度强化学习移动边缘计算网络在线计算卸载python
  • MVVM模式中,BaseViewModel 的 IsBusy 属性的作用
  • Hexo-butterfly友情链接页面优化
  • 【Linux】进程优先级和切换调度
  • 【软测】脚本实现 - 网页自动化测试
  • linux-压缩类命令