我正在查看以下 2 个示例,在第一个示例中,列表器用于检索项目。
在第二个示例中,使用了索引。
我想知道从本地缓存中检索元素的首选方式和方式。
你上面展示的例子,他们都使用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)