code: func getObjectByKey(conn redis.Conn, key string, value string, out interface{}) error {
  	id, err := redis.String(conn.Do("HGET", key, value))
  	if err == redis.ErrNil {
  		return db.ErrNotFound
  	} else if err != nil {
  		return err
  	}
  
  	object, err := redis.Bytes(conn.Do("GET", id))
  	if err != nil {
  		return err
  	}
  	return json.Unmarshal(object, out)
  }
docs: //TODO: Discuss this with Andre as a possibly replacement for getObjectByHash
  // 1.) key/value seems clearer to me than hash/field for equivalent concepts. However the latter
  //     may be more consistently used in the Redis community. If so, revert.
  // 2.) Not sure the custom "unmarshal" function is necessary when no domain logic is encapsulated
  //     within the Redis-based models. If the signatures of the Redis models are the same as contract
  //     then just use contract. However we have the capability to specialize the Redis models as
  //     needed now should a future requirement arise.