set(key, data, ttl) {
		this.metrics.increment(METRIC.MOLECULER_CACHER_SET_TOTAL);
		const timeEnd = this.metrics.timer(METRIC.MOLECULER_CACHER_SET_TIME);

		if (ttl == null) ttl = this.opts.ttl;

		data = this.clone ? this.clone(data) : data;

		this.cache.set(key, data, ttl ? ttl * 1000 : null);

		timeEnd();
		this.logger.debug(`SET ${key}`);

		return this.broker.Promise.resolve(data);
	}
Save data to cache by key

@param {String} key
@param {any} data JSON object
@param {Number} ttl Optional Time-to-Live
@returns {Promise}

@memberof MemoryLRUCacher