code: func (us *unionStore) Get(k Key) ([]byte, error) {
  	v, err := us.MemBuffer.Get(k)
  	if IsErrNotFound(err) {
  		if _, ok := us.opts.Get(PresumeKeyNotExists); ok {
  			e, ok := us.opts.Get(PresumeKeyNotExistsError)
  			if ok && e != nil {
  				us.markLazyConditionPair(k, nil, e.(error))
  			} else {
  				us.markLazyConditionPair(k, nil, ErrKeyExists)
  			}
  			return nil, ErrNotExist
  		}
  	}
  	if IsErrNotFound(err) {
  		v, err = us.BufferStore.r.Get(k)
  	}
  	if err != nil {
  		return v, err
  	}
  	if len(v) == 0 {
  		return nil, ErrNotExist
  	}
  	return v, nil
  }
docs: // Get implements the Retriever interface.