网站顶部展出的大幅广告,wordpress一键倒入微信,网站页面设计工作流程,wordpress 3.8 中文前言
etcd数据库操作基本围绕着对键值和目录的CRUD操作#xff0c;以及生命周期的管理。
之前在单节点部署了三实例集群#xff0c;而etcdctl默认找的是127.0.0.1:2379#xff0c;所以这里先声明一个临时全局变量
export ENDPShttp://192.168.0.41:12379,http://192.168.…前言
etcd数据库操作基本围绕着对键值和目录的CRUD操作以及生命周期的管理。
之前在单节点部署了三实例集群而etcdctl默认找的是127.0.0.1:2379所以这里先声明一个临时全局变量
export ENDPShttp://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 --limit2
# 添加 -w json 参数可以获取key的版本新增的键版本为2
etcdctl --endpoints${ENDPS} get --prefix -wjson /test
## 对一个键反复修改后假设当前版本为7想看历史的版本4的值
etcdctl --endpoints${ENDPS} get --prefix --rev4 /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 --lease694d83d9830fba26 /t/k10 t-k10
撤销租约
etcdctl lease revoke 694d83d9830fba26
刷新租约
# 如果租约已经过期则不能再刷新
etcdctl lease keep-alive 694d83d9830fba26
查看租约
etcdctl lease timetolive 694d83d9830fba26
# 查看租约存活时间以及哪些key使用了该租约
etcdctl lease timetolive --keys 694d83d9830fba26