enqueue(key, value, priority = 1) {
    return new Promise((resolve, reject) => {
      let json;
      try {
        json = JSON.stringify(value);
      } catch (error) {
        reject(error);
        return;
      }
      this._client.zadd(key, priority, json, error => {
        if (error) {
          reject(error);
          return;
        }
        if (!this._settings.expire) {
          resolve();
          return;
        }
        this._client.expire(key, this._settings.expire, _error => {
          if (_error) {
            reject(_error);
            return;
          }
          resolve();
        });
      });
    });
  }
@param {!string} key
@param {!string} value
@param {!number=} priority
@return {!Promise}
@override