code: function(keys) {
          var ctx = u.context(MEDIUM);
          logger.debugf('Invoke getAll(msgId=%d,keys=%s)', ctx.id, u.str(keys));
          // TODO: Validate empty keys
          return future(ctx, 0x2F, p.encodeMultiKey(keys), p.decodeCountValues());
        }
docs: Key/value entry.
  
  @typedef {Object} Entry
  @property {(String|Object)} key - Entry's key.
  @property {(String|Object)} value - Entry's value.
  @since 0.3
   
  Retrieves all of the entries for the provided keys.
  
  @param keys {(String[]|Object[])} Keys to find values for.
  @returns {module:promise.Promise.<Entry[]>}
  A promise that will be completed with an array of entries for all
  keys found. If a key does not exist, there won't be an entry for that
  key in the returned array.
  @memberof Client#
  @since 0.3