2

我正在查看以下 2 个示例,在第一个示例中,列表器用于检索项目。

第二个示例中,使用了索引。

我想知道从本地缓存中检索元素的首选方式和方式。

4

1 回答 1

3

你上面展示的例子,他们都使用indexer,如果你更深入你会看到它。

对于第一个示例(请参见此处

// Get retrieves the Node from the index for a given name.
func (s *nodeLister) Get(name string) (*v1.Node, error) {
    obj, exists, err := s.indexer.GetByKey(name)
    if err != nil {
        return nil, err
    }
    if !exists {
        return nil, errors.NewNotFound(v1.Resource("node"), name)
    }
    return obj.(*v1.Node), nil
}

对于第二个例子

item, exists, err := c.informer.GetIndexer().GetByKey(keyRaw)
于 2018-11-24T05:13:36.340 回答