我通过golang api将一个节点放入etcd,然后希望用etcdctl ls /
看到它,但是什么也没返回。但是,如果我使用golang的API Get()
,则可以得到想要的东西。谁能告诉我为什么?
golang代码如下:
func main() {
cli, err := clientv3.New(clientv3.Config{
Endpoints: []string{"localhost:2379"},
DialTimeout: 3 * time.Second,
})
if err != nil {
log.Fatal(err)
}
defer cli.Close()
time.Sleep(5 * time.Second)
_, err = cli.Put(context.TODO(), "/foo", "bar")
if err != nil {
log.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
resp, err := cli.Get(ctx, "/foo")
cancel()
if err != nil {
log.Fatal(err)
}
for _, ev := range resp.Kvs {
fmt.Printf("%s : %s\n", ev.Key, ev.Value)
}
}
etcdcli命令是这样的:
etcdctl ls /wonamingv3