首页 > 解决方案 > 如何通过修订删除 etcd 中的密钥

问题描述

我想删除 etcd 中的密钥,而其他人将密钥放入 etcd。所以我想在删除时指定修订。如果密钥版本低于修订版本,则将其删除。否则什么都不做。

// putInfoOp returns a PUT etcd operation for Info.
func putInfoOp(info Info) (clientv3.Op, error) {
    value, err := info.toJSON()
    if err != nil {
        return clientv3.Op{}, err
    }
    key := KeyAdapter.Encode(info.A, info.B)
    return clientv3.OpPut(key, value), nil
}

// deleteInfoOp returns a DELETE etcd operation for info.
func deleteInfoOp(info Info) clientv3.Op {
    return clientv3.OpDelete(KeyAdapter.Encode(
        info.A, info.B))
}

// my code
func handleinfo(info Info){
    putOp, _ := putInfoOp(info)
    _, rev, err := etcdutil.DoOpsInOneTxnWithRetry(cli, putOp)
    
    dosomething()
    
    delOp, _ := deleteInfoOp(Info) // how to delete it with rev?
}

标签: goetcd

解决方案



推荐阅读