code: func GetServiceProfileCache(p *redis.Pool, id uuid.UUID) (ServiceProfile, error) {
  	var sp ServiceProfile
  	key := fmt.Sprintf(ServiceProfileKeyTempl, id)
  
  	c := p.Get()
  	defer c.Close()
  
  	val, err := redis.Bytes(c.Do("GET", key))
  	if err != nil {
  		if err == redis.ErrNil {
  			return sp, ErrDoesNotExist
  		}
  		return sp, errors.Wrap(err, "get error")
  	}
  
  	err = gob.NewDecoder(bytes.NewReader(val)).Decode(&sp)
  	if err != nil {
  		return sp, errors.Wrap(err, "gob decode error")
  	}
  
  	return sp, nil
  }
docs: // GetServiceProfileCache returns a cached service-profile.