code: function wrapRemoteCache(remoteCache) {
      return {
          get: function (key) {
              var deferred = Q.defer();
  
              remoteCache.get(key, function (err, value) {
                  if (err) {
                      console.log('redis remoteCache.get err ' + err);
                      deferred.resolve();
                  }
  
                  if (_.isString(value) && value.charAt(0) === '{') {
                      value = JSON.parse(value);
                  }
  
                  deferred.resolve(value);
              });
  
              return deferred.promise;
          },
          set: function (key, value) {
              value = _.isObject(value) ? JSON.stringify(value) : value;
              remoteCache.set(key, value);
              remoteCache.expire(key, 3600);
          },
          del: function (key) {
              remoteCache.del(key);
          },
          quit: function () {
              remoteCache.quit();
          },
          flush: function () {
              remoteCache.flushdb();
          }
      };
  }
docs: /* eslint no-console: 0 
  Create a simple wrapper so the remote cache and local cache
  interfaces are the same
  
  @param remoteCache
  @returns {{get: Function, set: *}}